1.代码片段
package com.limi;
import com.limi.entity.User;
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 org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MyTest {
@Test
public void test1() throws IOException {
//1.mybatis 主配置文件
String config = "mybatis-config.xml";
//2.读取配置文件
InputStream in = Resources.getResourceAsStream(config);
//3.创建 SqlSessionFactory 对象,目的是获取 SqlSession
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//4.获取 SqlSession,SqlSession 能执行 sql 语句
SqlSession session = factory.openSession();
//5.执行数据库操作, namespace.id的方式确定使用哪个sql语句
List<User> userList = session.selectList("abc.getAll");
//6.输出查询结果
userList.forEach(user -> System.out.println(user));
//7.关闭 SqlSession,释放资源
session.close();
}
}
这是Mybatis执行操作的步骤, 其实很多步骤都是相同的,所以我们写个工具类复用一下.
2.编写工具类
package com.limi.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.InputStream;
public class MyBatisUtil {
//定义 SqlSessionFactory
private static SqlSessionFactory factory = null;
static {
//使用 静态块 创建一次 SqlSessionFactory
try{
String config = "mybatis-config.xml";
//读取配置文件
InputStream in = Resources.getResourceAsStream(config);
//创建 SqlSessionFactory 对象
factory = new SqlSessionFactoryBuilder().build(in);
}catch (Exception e){
factory = null;
e.printStackTrace();
}
}
/* 获取 SqlSession 对象 */
public static SqlSession getSqlSession(){
SqlSession session = null;
if( factory != null){
session = factory.openSession();
}
return session;
}
}
3.使用工具类
package com.limi;
import com.limi.entity.User;
import com.limi.utils.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.io.IOException;
import java.util.List;
public class MyTest {
@Test
public void test1() throws IOException {
//使用工具类
SqlSession session = MyBatisUtil.getSqlSession();
//5.执行数据库操作, namespace.id的方式确定使用哪个sql语句
List<User> userList = session.selectList("com.limi.dao.UserDao.getAllUser");
//6.输出查询结果
userList.forEach(user -> System.out.println(user));
//7.关闭 SqlSession,释放资源
session.close();
}
}
剩余完整代码请见上篇博客:
https://blog.csdn.net/qq_41865229/article/details/122367503