一、添加jar包
<dependencies>
<!-- 具体依赖的jar包配置代码放这里-->
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<!-- junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--myBaits-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
这是用了Maven构建工具来添加jar包
二、配置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="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/Book?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true"/>
<property name="username" value="root"/>
<property name="password" value="密码"/>
</dataSource>
</environment>
</environments>
<!-- 每一个(Dao)mapper.xml文件需要配置 注意是用斜线/而不是用.-->
<mappers>
<mapper resource="com/gy/dao/UserMapper.xml"/>
<mapper resource="com/gy/dao/PageMapper.xml"/>
<mapper resource="com/gy/dao/StudentMapper.xml"/>
</mappers>
</configuration>
三、编写MybatisUtils工具类
package com.gy.utils;
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;
public class MybatisUtils {
static SqlSessionFactory sqlSessionFactory =null;
static {
try {
String resource = "mybatis-config.xml";//resources目录下的文件可以直接访问。
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
依据为官网帮助文档
sqlSessionFactoryBuilder应该为局部变量,而SqlSessionFactory应该为静态变量。
四、开始编写代码并使用
(1)UserMapper为接口只需要写返回类型和方法名即可
public interface UserMapper {
List<User> getUserList();
User getUserOne();
}
(2)编写对应的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">
<!--绑定对应的Dao/mapper对应的接口-->
<mapper namespace="com.gy.dao.UserMapper">
<!-- 编写sql语句,resultType表示返回单个指定对象(推),map则返回map集合-->
<!--id为接口UserMapper的对应方法 resultType为sql语句执行完毕后的结果类型 -->
<select id="getUserList" resultType="com.gy.pojo.User">
select * from mybatis.user;
</select>
<select id="getUserOne" resultType="com.gy.pojo.User">
select * from mybatis.user where id=2;
</select>
</mapper>
(3)还有就是要在Maven的pom.xml添加如下代码(第一篇文章有说)
<build>
<!--必须配置,属于maven的一个bug,只有这样mapper.xml文件才能编译导出-->
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
(4)使用并测试
package com.gy.dao;
import com.gy.pojo.User;
import com.gy.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserDaoTest {
@Test
public void test(){
//不需要手动关闭流了 不管如何都会关闭try()中的流对象
// 获取sqlSession对象
try(SqlSession sqlSession = MybatisUtils.getSqlSession()){
//获取mapper接口对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//直接执行mapper接口中写好的方法getUserList()即可
List<User> userList = userMapper.getUserList();
for (User user : userList) {
System.out.println(user);
}
//直接执行mapper接口中写好的方法getUserOne()即可
User userOne = userMapper.getUserOne();
System.out.println(userOne);
}catch (Exception e){
e.printStackTrace();
}
}
}