1.创建测试数据库
CREATE DATABASE `mybatis`;
-- 使用此数据库
USE `mybatis`;
-- 创建 user 表
CREATE TABLE user(
`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(30) NOT NULL,
`pwd` VARCHAR(30) NOT NULL
)ENGINE=INNODB CHARSET UTF8;
-- 添加3条测试数据
INSERT INTO user(`name`, `pwd`) VALUES
('张三', '864531'),
('李四', '1564513'),
('刘鹏飞', '9846513')
2.搭建项目
使用IDEA创建一个空的maven项目
然后删除其中的src项目,将此工程作为一个父工程
3.添加maven依赖
<!-- mybatis 依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
4.添加第一个Module测试项目
5.创建pojo实体类
使用@Data注解可以省去大量get/set方法
@Data
publicclass User implements Serializable {
private Integer id;
private String name;
private String pwd;
}
6.配置Mybatis核心文件
<!-- mybatis 核心配置 -->
<configuration>
<!-- 运行环境 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value=""/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
</configuration>
7.创建一个工具类用于获取SqlSession
publicclass MyBatisUtil {
privatestatic SqlSessionFactory sqlSessionFactory;
static {
try {
// 初始化构建 SqlSessionFactory
String resource = "";
InputStream inputStream = (resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
();
}
}
/**
* 通过 SqlSessionFactory 创建一个 SqlSession 对象
*
* @return SqlSession 对象
*/publicstatic SqlSession getSqlSession() {
return sqlSessionFactory.openSession();
}
}
8.添加UserMapper接口
publicinterface UserMapper {
/**
* 查询所有用户信息
*
* @return 用户信息
*/public List<User> getUserList();
}
9.添加配置文件编写sql语句
mapper namespace="">
<!-- 查询所有用户信息 -->
<select id="getUserList" resultType="">
select * from mybatis.user;
</select>
</mapper>
10.添加测试类测试
publicclass UserMapperTest {
@Test
publicvoid test01() {
SqlSession sqlSession = null;
try {
// 1.获取到 SqlSession 对象那个
sqlSession = ();
// 2.通过 getMapper 方法加载对应的 UserMapper 接口
UserMapper mapper = (UserMapper.class);
// 3.执行接口方法
List<User> userList = ();
for (User user : userList) {
System.out.println(user);
}
} catch (Exception e) {
();
} finally {
// 4.关闭 sqlSession 对象if (sqlSession != null) {
();
}
}
}
}
然后通过运行我们发现一个被遗忘的问题, UserMapper文件并没有被注册到 MapperRegistry 中
Type interface is not known to the MapperRegistry.
我们要解决这个问题,需要在 文件中注册此 Mapper 文件
然后我们还有遇到一个初始化异常错误
Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/bai/dao/
发生这个错误是因为在 java 源码中并不能加载 xml 类型的文件,要解决这个问题,需要修改一个 文件,添加一些配置
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<!-- 支持 properties 在 resources 包中存在 -->
<include>**/*.properties</include>
<!-- 支持 xml 文件在 resources 包中存在 -->
<include>**/*.xml</include>
</includes>
<!-- 是否过滤 : 是 -->
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<!-- 支持 properties 在 java 包中存在 -->
<include>**/*.properties</include>
<!-- 支持 xml 文件在 java 包中存在 -->
<include>**/*.xml</include>
</includes>
<!-- 是否过滤 : 是 -->
<filtering>true</filtering>
</resource>
</resources>
</build>
最终测试结果: