目录结构:
1. 配置坐标;
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>mybatisjdbc</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<!-- MySQL数据库连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
<!-- JDBC数据源连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.1</version>
</dependency>
<!-- MyBatis框架依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- Log4j2依赖的JAR配置 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
</project>
2.创建日志文件 log4j.properties;
log4j.rootLogger=ERROR, stdout
log4j.logger.com.mybatis=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
相比于eclipse,使用IDEA 还需要创建 log4j2.xml ;
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%m%n" />
</Console>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>
3. 创建持久化类;
创建 com.mybatis.dao 包,包中创建 MyUser 持久化类;
package com.mybatis.dao;
public class MyUser {
private Integer uid;
private String uname;
private String usex;
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUsex() {
return usex;
}
public void setUsex(String usex) {
this.usex = usex;
}
@Override
public String toString() {
return "MyUser{" +
"uid=" + uid +
", uname='" + uname + '\'' +
", usex='" + usex + '\'' +
'}';
}
}
4. 创建数据库 my_01, 建表 ch5 ; IDEA连接数据库;
5. 创建MyBatis 核心配置文件 mybatis-config.xml ;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置环境-->
<environments default="development">
<environment id="development">
<!-- 使用JDBC 的事物管理-->
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- MYSQL 数据库驱动 -->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!-- 连接数据库的URL -->
<property name="url" value="jdbc:mysql://localhost:3306/my_01?serverTimezone=Asia/Shanghai&characterEncoding=UTF8"/>
<property name="username" value="root"/>
<property name="password" value="abc123"/>
</dataSource>
</environment>
</environments>
<!-- 映射文件的位置 -->
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
6. 创建映射文件 UserMapper.xml ;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="UserMapper">
<!-- 根据 uid 查询一个用户信息 -->
<select id="selectUserById" parameterType="Integer"
resultType="com.mybatis.dao.MyUser">
select * from ch5 where uid = #{uid}
</select>
<!-- 查询所有用户信息 -->
<select id="selectAllUser" resultType="com.mybatis.dao.MyUser">
select * from ch5
</select>
<!--添加一个用户,-->
<select id="addUser" parameterType="com.mybatis.dao.MyUser">
insert into ch5 (uname, usex) values (#{uname},#{usex})
</select>
<!-- 修改一个用户-->
<update id="updateUser" parameterType="com.mybatis.dao.MyUser">
update ch5 set uname = #{uname},usex = #{usex} where uid = #{uid}
</update>
<!--删除一个用户-->
<delete id="deleteUser" parameterType="Integer">
delete from ch5 where uid = #{uid}
</delete>
</mapper>
7. 创建测试类 MyBatisTest 测试类 ;
package com.mybatis.test;
import com.mybatis.dao.MyUser;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MyBatisTest {
public static void main(String[] args) {
try{
//读取配置文件mybatis-config.xml
InputStream config= Resources.getResourceAsStream
("mybatis-config.xml");
//根据配置文件构建 SqlSessionFactory
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(config);
//通过 SqlSessionFactory 创建 SqlSession
SqlSession ss = ssf.openSession();
//SqlSession 执行映射文件中定义的 SQL ,并返回映射结果;
MyUser mu = ss.selectOne("UserMapper.selectUserById",4);
System.out.println(mu);
System.out.println("查询单个ID-------------------");
//查询所有的用户
List<MyUser>listMU = ss.selectList("UserMapper.selectAllUser");
for (MyUser myUser : listMU){
System.out.println(myUser);
}
// 提交事物
ss.commit();
// 关闭 SqlSession
ss.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
8. 测试类运行结果;这里只测试了 单个id查询和查询所有;