0.说明
工具:IDEA 2020.1 、Maven 3.6.3、jdk1.8
jdk1.8下载地址:
通过网盘分享的文件:jdk
链接: https://pan.baidu.com/s/1lzI1r7FcLW6ZrtqKFTBaCw?pwd=g5v6 提取码: g5v6
Maven3.6.3下载地址:
通过网盘分享的文件:apache-maven-3.6.3.zip
链接: https://pan.baidu.com/s/1MBqqGRax2qK0oWSuNDpmrw?pwd=xm9j 提取码: xm9j
源代码下载:https://box356.lanzoub.com/iBqip2r5hajg
1.MyBatis环境搭建
打开IDEA,点击“File—>New—>Project”

我们 选择“Maven”项目,然后点击“Next”

改一下项目名称,然后点击“Finish”

创建完项目默认如下:

我们引入相关依赖,打开POM文件,引入下面的依赖
<?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>com.itheima</groupId> <artifactId>mybatistest</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>compile</scope> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> </build> </project>
然后点击下面这两个小图标,下载maven依赖。

然后创建数据库链接信息配置文件 (db.properties)
右击 resources,选择“New—>File”

输入db.properties,里面内容参考如下:
mysql.driver=com.mysql.cj.jdbc.Driver mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false mysql.username=root mysql.password=123456

编写配置文件mybatis-config.xml
右击 “resources—>New—>File”,命名为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> <!-- 环境配置 --> <!-- 加载类路径下的属性文件 --> <properties resource="db.properties"/> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <!-- 数据库连接相关配置 ,db.properties文件中的内容--> <dataSource type="POOLED"> <property name="driver" value="${mysql.driver}"/> <property name="url" value="${mysql.url}"/> <property name="username" value="${mysql.username}"/> <property name="password" value="${mysql.password}"/> </dataSource> </environment> </environments> </configuration>

到此,mybaits环境搭建完毕。
2.数据库与实体类创建
(1)数据库创建
使用navicat或者其他的数据库工具,创建一个数据库,名字为mybatis,然后使用下面的sql在数据库里执行。
use mybatis; create table users( uid int primary key auto_increment, uname varchar(20) not null, uage int not null ); insert into users(uid,uname,uage) values(null,'张三',20),(null,'李四',18);
创建完了,查看一下数据库,数据是否正常插入

(2)创建实体类
右击“java”文件夹,选择“New—>Package”

然后名称输入 com.itheima.pojo

创建完后,界面如下所示,然后右击“pojo”文件夹,选择“New->Java Class”
类名

名称输入 User,类型选择Class,然后按回车

代码参考下面的
package com.itheima.pojo; public class User { private int uid; //用户id private String uname; //用户姓名 private int uage; //用户年龄 public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public int getUage() { return uage; } public void setUage(int uage) { this.uage = uage; } }
界面参考如下:

3.mapper映射文件
(1)创建mapper映射文件
右击”resources“文件夹,选择 ”New—>Directory“,创建文件夹,名称就叫mapper

刚才创建的mapper文件夹,右击它,然后选择”New—>File“,文件名称就写 ”UserMapper.xml“

代码参考如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- mapper为映射的根节点--> <!-- mapper为映射的根节点,namespace指定Dao接口的完整类名 mybatis会依据这个接口动态创建一个实现类去实现这个接口, 而这个实现类是一个Mapper对象--> <mapper namespace="com.itheima.pojo.User"> <!--id ="接口中的方法名" parameterType="传入的参数类型" resultType = "返回实体类对象,使用包.类名"--> <select id="findById" parameterType="int" resultType="com.itheima.pojo.User"> select * from users where uid = #{id} </select> </mapper>
效果如下:

(注意,后续代码中,我们已经把xml中所有的中文注释都删除了,变成下面这样)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.itheima.pojo.User"> <select id="findById" parameterType="int" resultType="com.itheima.pojo.User"> select * from users where uid = #{id} </select> </mapper>
这样我们就完成了映射文件,一般情况下, 一个实体类对应一个映射文件,命名规则一般是 实体类+Mapper+.xml
上面的代码写了一个 查询语句。id=”findById”,后面要在test语句中使用。
后面这个UserMapper.xml文件可以增加相应的 update、insert、delete操作。
注意,id要做到唯一。
(2)修改mybatis-config.xml,引入UserMapper.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> <!-- 环境配置 --> <!-- 加载类路径下的属性文件 --> <properties resource="db.properties"/> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <!-- 数据库连接相关配置 ,db.properties文件中的内容--> <dataSource type="POOLED"> <property name="driver" value="${mysql.driver}"/> <property name="url" value="${mysql.url}"/> <property name="username" value="${mysql.username}"/> <property name="password" value="${mysql.password}"/> </dataSource> </environment> </environments> <!-- mapping文件路径配置 --> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration>
4.创建测试类
我们右击测试类下面的java文件夹,选择 ”New—>Package“,然后名称选择”Test“

代码参考如下:
package Test; import com.itheima.pojo.User; 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 org.junit.Test; import java.io.IOException; import java.io.Reader; public class UserTest { @Test public void userFindByIdTest() { //读取文件名 String resources = "mybatis-config.xml"; //创建流 Reader reader = null; try { //读取mybatis-config.xml文件内容到reader对象中 reader = Resources.getResourceAsReader(resources); } catch (IOException e) { e.printStackTrace(); } //初始化mybatis数据库,创建SqlSessionFactory类的实例 SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader); //创建SqlSession实例 SqlSession session = sqlMapper.openSession(); //传入参数查询,返回结果 User user = session.selectOne("findById", 1); //输出结果 System.out.println(user.getUname()); //关闭session session.close(); } }

执行测试结果:
