MyBatis系列(二)
mapper动态代理(MyBatis接口开发)
原则:约定优于配置
配置方式:
abc.xml
硬编码方式
abc.java
约定:默认值就是myProject
与传统配置的不同之处:省略掉statement,即根据约定直接定位出sql语句。
约定:
1 | /* |
接口和mapper一一对应:namespace的value=接口的全类名
构建接口
所以说新建一个接口,根据前一个篇的mapper.xml的文件基础上改,注:我这里是把接口建在了mapper包下
1 | Student queryStudentBystuNum(int stuno); |
注意这里的接口要遵循上面的约定。
更改xml文件
再mapper.xml file中,namespace也应该改成接口的名字
1 | <mapper namespace="top.eshyee.mapper.StudentMapper"> |
接下来,就是修改测试类,曾经使用的statement
的地方,目前就不用使用了。
使用接口
这次拿删除学生举例,首先要从session
中获取到这个接口,使用getMapper
方法。然后从这个接口中要我刚刚写的那个删除的方法deleteStuByNo()
,这里我写死删除no为3的 倒霉孩子 ✨
1 | Reader reader = Resources.getResourceAsReader("conf.xml"); |
测试一下
3号学生被删除并想你抛了一行log🌚
总结
约定相对于配置来说,出错率更少了,因为不用写statement,而是通过调用接口去实现xml的id的调用,对于写statement的String容易手残的老哥来说,是不错的选择。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.