@Test
public void querySubjectById() {
try {
/*向数据库添加数据*/
//1.加载配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
//2.获取sqlSessionFactory工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//3.通过sqlSessionFactory创建sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//4.通过sqlSession获取DAO实现类对象
SubjectsDao subjectsDao = sqlSession.getMapper(SubjectsDao.class);
Subjects subjects = subjectsDao.querySubjectById(1002);
System.out.println(subjects);
List<Students2> students2 = subjects.getStudents2();
System.out.println(students2);
for(Students2 students21:students2){
System.out.println(students21);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
sqlSession.close();
}
}
给它封装了
package com.qf.until;
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;
/*
* 1.加载配置
* 2.创建SqlSessionFactory
* 3.创建Session
* 4.事务管理
* 5.Mapper获取
*
* */
public class MyBatisUntil {
private static SqlSessionFactory sqlSessionFactory;
//创建ThreadLocal绑定当前线程中的SqlSession对象
private static final ThreadLocal<SqlSession> t1 = new ThreadLocal<SqlSession>();
static {
//加载配置信息,并构建session工厂
//1.加载配置文件
try{
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}catch (Exception e){
e.printStackTrace();
}
}
public static SqlSession openSession(){
SqlSession sqlSession = t1.get();
if(sqlSession == null ){
sqlSession = sqlSessionFactory.openSession();
t1.set(sqlSession);
}
return sqlSession;
}
public static void closeSession(){
SqlSession sqlSession = t1.get();
sqlSession.close();
}
public static void commit(){
SqlSession sqlSession = openSession();
sqlSession.commit();
closeSession();
}
public static void callback(){
SqlSession sqlSession = openSession();
sqlSession.rollback();
closeSession();
}
/*获取mapper封装*/
public static <T> T getMapper(Class<T> mapper){
SqlSession sqlSession = openSession();
return sqlSession.getMapper(mapper);
}
}