导入maven坐标和数据库连接的pom坐标
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
在resource文件夹下建立mybatis配置文件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文件 -->
<properties resource="jdbc.properties"></properties>
<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="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
</configuration>
在resource文件夹下建立jdbc.properties配置文件保存数据库配置
driver = com.mysql.cj.jdbc.Driver
url = jdbc:mysql://localhost:3306/zzu?serverTimeZone=UTC&characterEncoding=utf-8
user = root
password = 123456
对应数据库表中的字段,进行实体类pojo/userinfo的建立
package pojo;
public class userinfo {
private Integer id;
private String college;
private String name;
private Integer picId;
public userinfo(Integer id, String college, String name, Integer picId) {
this.id = id;
this.college = college;
this.name = name;
this.picId = picId;
}
public userinfo() {
}
@Override
public String toString() {
return "userinfo{" +
"id=" + id +
", college=‘" + college + ‘\‘‘ +
", name=‘" + name + ‘\‘‘ +
", picId=" + picId +
‘}‘;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCollege() {
return college;
}
public void setCollege(String college) {
this.college = college;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPicId() {
return picId;
}
public void setPicId(Integer picId) {
this.picId = picId;
}
}
连接工具类utils/MybatisUtils的创建
package util;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtils {
private static SqlSession sqlSession = null;
public static SqlSession getSqlSession(){
try{
if(sqlSession == null){
sqlSession = new SqlSessionFactoryBuilder().build(MybatisUtils.class.getClassLoader().
getResourceAsStream("mybatis-config.xml")).openSession();
}
}catch(Exception e){
System.out.println("获取session出错");
e.printStackTrace();
}
return sqlSession;
}
public static void close(){
if(sqlSession != null){
sqlSession.close();
}
}
}
Dao接口Dao/userDao的创建
package Dao;
import pojo.userinfo;
import java.util.List;
public interface UserDao {
// 查找所有
public List<userinfo> findAll();
}
在resource文件下建立与Dao接口相同的目录结构
创建userDaoMapper.xml文件,对Dao接口进行配置
<?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="Dao.UserDao">
<select id="findAll" resultType="pojo.userinfo">
select * from userinfo
</select>
</mapper>
namespace指定的是要绑定的Dao接口,写全限定类名
当进行查询操作时,使用<select>
标签,id
与Dao接口中的方法绑定,名字相同,resultType
对应着返回类型,与实体类绑定,写全限定类名,之后进行SQL语句的书写
<?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文件 -->
<properties resource="jdbc.properties"></properties>
<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="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 添加Dao接口的xml配置-->
<mappers>
<mapper resource="Dao/UserMapper.xml"/>
</mappers>
</configuration>
使用@Test
进行测试
package mybatis;
import Dao.UserDao;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import pojo.userinfo;
import util.MybatisUtils;
import java.util.List;
public class MybatisTest {
@Test
public static void main(String[] args) {
// 使用工具类获取sqlSession
SqlSession sqlSession = MybatisUtils.getSqlSession();
// 利用反射来创建Dao接口的实例
UserDao userDao = sqlSession.getMapper(UserDao.class);
// 调用Dao接口的方法,得到结果
List<userinfo> list = userDao.findAll();
// 遍历结果
for (userinfo user : list) {
System.out.println(user);
}
}
}
通过以上六个步骤,完成使用xml配置形式的Mybatis的使用
原文:https://www.cnblogs.com/qinmubing/p/14627007.html