mybatis04--Mapper动态代理实现
通過(guò)之前的操作,我們發(fā)現(xiàn)dao的實(shí)現(xiàn)類(lèi)其實(shí)并沒(méi)有做什么實(shí)質(zhì)性的工作,僅僅是通過(guò)sqlSession的相關(guān)API定位到StudentMapper映射文件
中的ID中的sql語(yǔ)句,其實(shí)真正操作DB的是mapper中的sql
所以mybatis就拋開(kāi)了dao層的實(shí)現(xiàn)類(lèi),可以直接定位到mapper中的sql!然后執(zhí)行sql對(duì)DB進(jìn)行操作!這種對(duì)dao的實(shí)現(xiàn)方式我們稱(chēng)為Mapper的動(dòng)態(tài)代理方式!
?
1.刪除之前的StudentDaoImpl實(shí)現(xiàn)類(lèi)
2.修改StudentMapper文件中的namespace必須是StudentDao的完整限定名
?
3.修改StudentMapper文件中所有的id必須和StudentDao接口中的方法名稱(chēng)完全一致
?
4.修改測(cè)試類(lèi)代碼
?
public class StudentTest {StudentDao dao;SqlSession session;@Beforepublic void before() {// 因?yàn)樾枰P(guān)閉session 需要把session提取出去session = SessionUtil.getSession();dao = session.getMapper(StudentDao.class);}@Afterpublic void after() {if (session != null) {session.close();}}// 新增@Testpublic void test() {Student student = new Student("小黑333", 100);System.out.println("方法之前==" + student);dao.addStudent(student);System.out.println("方法之后==" + student);session.commit();} }?
?之后的刪除,修改,刪除和查詢(xún)也是同樣的操作!
轉(zhuǎn)載于:https://www.cnblogs.com/HHR-SUN/p/7201386.html
總結(jié)
以上是生活随笔為你收集整理的mybatis04--Mapper动态代理实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 构造方法:
- 下一篇: 【leetcode】Word Break