(**1) 去掉 Dao **接口实现类
(**2) getMapper **获取代理对象
只需调用 SqlSession的 getMapper()``方法,即可获取指定接口的实现类对象。该方法的参数为指定 Dao接口类的 class 值。
SqlSession session = factory.openSession();StudentDao dao = session.getMapper(StudentDao.class);
使用工具类:
StudentDao studentDao = MyBatisUtil.getSqlSession().getMapper(StudentDao.class);
(**3) 使用 Dao 代理对象方法执行 sql **语句
package com.wzy.dao;import com.wzy.pojo.Student;import com.wzy.utils.MyBatilsUtils;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.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;public class StudentDaoTest2 {@Testpublic void selectStudents() {//1.获取代理对象StudentDao studentDao = MyBatilsUtils.getSqlSession().getMapper(StudentDao.class);//2.调用查询方法List<Student> studentList = studentDao.selectStudents();//3.输出结果studentList.forEach(student -> System.out.println(student));}@Testpublic void insertStudent() throws ParseException {SqlSession sqlSession = null;try {//1.获取代理对象sqlSession = MyBatilsUtils.getSqlSession();StudentDao studentDao = sqlSession.getMapper(StudentDao.class);//2.调用方法执行sql语句int result = studentDao.insertStudent(new Student(null, "莉莉", "女", 15,new SimpleDateFormat("yyyy-MM-dd").parse("2006-5-26"), null));//3.没有异常提交数据sqlSession.commit();System.out.println("成功插入了" + result + "条数据!");} catch (ParseException e) {e.printStackTrace();sqlSession.rollback();} finally {if (sqlSession != null) {sqlSession.close();}}}@Testpublic void upDateStudent() {SqlSession sqlSession = null;Date parse = null;try {sqlSession = MyBatilsUtils.getSqlSession();StudentDao studentDao = sqlSession.getMapper(StudentDao.class);parse = new SimpleDateFormat("yyyy-MM-dd").parse("1996-8-20");int result = studentDao.updateStudent(new Student(13, "花花", "女", 25, parse, null));sqlSession.commit();System.out.println("成功修改了" + result + "条数据!");} catch (ParseException e) {e.printStackTrace();sqlSession.rollback();} finally {if (sqlSession != null) {sqlSession.close();}}}@Testpublic void deleteStudent() {SqlSession sqlSession = null;try {String config = "MyBatis.xml";InputStream resourceAsStream = Resources.getResourceAsStream(config);SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(resourceAsStream);sqlSession = factory.openSession();StudentDao studentDao = sqlSession.getMapper(StudentDao.class);int result = studentDao.deleteStudent(13);sqlSession.commit();System.out.println("成功删除了" + result + "条记录!");} catch (IOException e) {e.printStackTrace();sqlSession.rollback();} finally {if (sqlSession != null) {sqlSession.close();}}}}
