(2)新建一个普通 maven 项目作为父项目,并导入 sql 驱动,mybatis,junit 组件
<!--导入依赖-->
<dependencies>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!--Mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
(3)新建一个新组件作为子级项目,普通 maven 的 module
(4)添加配置文件
-
在 src->main->resources 目录下新建 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">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/> //数据库驱动,不同驱动可连接不同数据库服务器
<property name="url" value="${url}"/> //连接数据库的目录
<property name="username" value="${username}"/> //数据库名字,默认root
<property name="password" value="${password}"/> //数据库密码,自己的数据库密码,一般为root
</dataSource>
</environment>
</environments>
</configuration>
2、编写 mybatis 工具类
MybatisUtils.java:
//SqlSessionFactory --生产--> SqlSession
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory; //提升作用域
//获取工厂,固定代码
static {
try {
String resource="mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取sqlSession
//SqlSession完全包含了面向对象数据库执行SQL命令所需的方法
public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession();}
}
3、编写相关代码
(1)实体类
@Data
public class User {
private int id;
private String name;
private String pwd;
}
(2)Dao 接口
public interface UserDao {
List<User> getUserList();
}
(3)xxxMapper.xml 配置文件
-
接口的实现类要改为以 xxxMapper.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">
<!--namespace:命名空间,绑定mapper/Dao接口-->
<mapper namespace="com.wang.dao.UserDao">
<!--id:接口的方法,resultType:接口的返回值类型-->
<select id="getUserList" resultType="com.wang.pojo.User">
select * from mybatis.user where id = #{id}
</select>
</mapper>
每一个 Mapper.xml 文件都需要在 src->main->resources 目录下的 mybatis-config.xml 核心配置文件中注册:
<mappers>
<mapper resource="com/wang/dao/UserMapper.xml">
</mappers>
4、测试
public class UserDaoTest {
@Test
public void test(){
//获取SqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
//获取mapper
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<User> list = mapper.getUserList();
for (User u:list){