Mybatis入门
1. 准备数据
创建数据库eesy_mybatis,创建表user,插入数据
2. pom文件
打包方式
<packaging>jar</packaging>
导入坐标
- mybatis 坐标
mybatis 官网文档 - 入门 - 安装
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
- mysql-connector-java坐标
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
- 日志坐标
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
- 单元测试坐标
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
3. XML开发步骤
3.1 创建包结构
3.2 创建User实体类
属性与user表的字段命名相同
3.3 创建IUserDao接口
3.4 创建主配置文件(SqlMapConfig.xml)并进行配置
名称不固定,习惯命名为SqlMapConfig.xml
3.4.1 顶部加入Config约束
<?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">
3.4.2 配置环境
<!-- mybatis 的主配置文件 -->
<configuration>
<!-- 配置环境 -->
<!-- default 的值不固定,但内部必须有一个id值与default值相同的environment与之对应 -->
<environments default="mysql">
<!-- 配置mysql环境 -->
<environment id="mysql">
<!-- 配置事务的类型 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源(连接池) -->
<!-- type 的值有三个,此处用的是POOLED,表示使用连接池的-->
<dataSource type="POOLED">
<!-- 配置数据库的4个基本信息(driver、url、username、password) -->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
</configuration>
3.4.3 指定映射配置文件的位置
<!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
<mappers>
<!-- resource 指定映射文件位置,此处为针对UserDao(com.itheima.dao.IUserDao)的配置 -->
<mapper resource="com/itheima/dao/IUserDao.xml"/>
</mappers>
3.5 创建映射配置文件
3.5.1 顶部加入Mapper约束
<?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">
3.5.2 配置Mapper
<!-- namespace Dao的全限定类名 -->
<mapper namespace="com.itheima.dao.IUserDao">
<!-- 配置查询所有 -->
<!-- id:Dao的方法名称 -->
<!-- SQL语句结尾的分号可写可不写 -->
<select id="findAll">
select * from user
</select>
</mapper>
4. 注意事项
-
idea中创建目录与创建包不同,com.itheima.dao对于包是三级结构,而对于目录是一级结构,想要创建三级目录结构需要一级一级创建
-
映射配置文件位置必须和dao接口的包结构相同
图中dao接口的包结构为com.itheima.dao,相应的映射配置文件的位置为com/itheima/dao -
除此之外
剩下的操作由mybatis实现
5. MyBatis入门案例
5.1 完善Mapper
完善IUserDao.xml文件的查询语句配置
<!-- 配置查询所有 -->
<!-- id:Dao的方法名称 -->
<!-- SQL语句结尾的分号可写可不写 -->
<select id="findAll" resultType="com.itheima.domain.User">
select * from user
</select>
5.2 测试
在day01_eesy_01mybatis/src/test/java下创建com.itheima.test三级包结构,并创建com.itheima.test.MybatisTest测试类,启动测试类,运行结果如下,启动过程中遇到的错误及解决方法在FAQ 1、2
部分