=============== MyBatis工具封装 =============== 封装工具类: /src/main/java/cn.tedu.hellomybatis.utils/MyBatisUtil.java public class MyBatisUtil { private static final ThreadLocal local = new ThreadLocal<>(); private static SqlSessionFactory factory; static { try { factory = new SqlSessionFactoryBuilder().build( Resources.getResourceAsStream("mybatis-config.xml")); } catch (IOException e) { e.printStackTrace(); } } public static SqlSessionFactory getFactory() { return factory; } public static SqlSession getSession() { SqlSession session = local.get(); if (session == null) local.set(session = factory.openSession()); return session; } public static T getMapper(Class c) { return getSession().getMapper(c); } } 修改测试类: /src/test/java/cn.tedu.hellomybatis.dao/StudentDaoTest.java public class StudentDaoTest { // 测试增加学生 @Test public void testAdd() { // SQL会话 SqlSession session = MyBatisUtil.getSession(); // 数据访问对象 StudentDao dao = session.getMapper(StudentDao.class); // 学生实体 Student student = new Student(0, "1003", "关羽", "男", 35); // 增加学生 int rows = dao.add(student); // 打印受影响的行数 System.out.println(rows); // 提交事务 session.commit(); } // 测试删除学生 @Test public void testDel() { // SQL会话 SqlSession session = MyBatisUtil.getSession(); // 数据访问对象 StudentDao dao = session.getMapper(StudentDao.class); // 删除学生 int rows = dao.del("1001"); // 打印受影响的行数 System.out.println(rows); // 提交事务 session.commit(); } // 测试修改学生 @Test public void testMod() { // SQL会话 SqlSession session = MyBatisUtil.getSession(); // 数据访问对象 StudentDao dao = session.getMapper(StudentDao.class); // 修改学生 int rows = dao.mod(new Student(0, "1001", "貂蝉", "女", 19)); // 受影响的行数应为1 assertEquals(1, rows); // 提交事务 session.commit(); } // 测试查询全部 @Test public void testAll() { // 数据访问对象 StudentDao dao = MyBatisUtil.getMapper(StudentDao.class); // 查询全部 List students = dao.all(); // 打印全部 for (Student student : students) System.out.println(student); } // 测试查询一个 @Test public void testOne() { // 数据访问对象 StudentDao dao = MyBatisUtil.getMapper(StudentDao.class); // 查询一个 Student student = dao.one("1001"); // 打印一个 System.out.println(student); } // 测试查询总数 @Test public void testCnt() { // 数据访问对象 StudentDao dao = MyBatisUtil.getMapper(StudentDao.class); // 查询总数 int cnt = dao.cnt(); // 打印总数 System.out.println(cnt); } // 测试分页查询 @Test public void testPag() { // 数据访问对象 StudentDao dao = MyBatisUtil.getMapper(StudentDao.class); // 分页查询 /* HashMap params = new HashMap<>(); params.put("start", 0); params.put("size", 2); List students = dao.pag(params); */ List students = dao.pag(0, 2); // 打印分页 for (Student student : students) System.out.println(student); } // 测试增加学生返回标识 @Test public void testAddHasId() { // SQL会话 SqlSession session = MyBatisUtil.getSession(); // 数据访问对象 StudentDao dao = session.getMapper(StudentDao.class); // 学生实体 Student student = new Student(0, "1004", "赵云", "男", 20); // 增加学生返回标识 int rows = dao.addHasId(student); // 打印受影响的行数 System.out.println(rows); // 打印新增学生标识 System.out.println(student.getId()); // 提交事务 session.commit(); } } 例程:HelloMyBatis