目录
什么是接口代理开发方式?
在我们编写dao层时,需要先声明一个接口,在这个接口的实现类中完成对数据库的操作。当我们学了Mybatis框架之后,可以使用框架的代理开发方式来帮我们完成这一项工作。
我们只需要dao层编写接口,由Mybatis框架根据接口定义创建接口的动态代理对象(简而言之就是框架帮我们动态完成实现类),从而可以更加方便的完成对数据库的一些操作。
当然,既然要让框架帮我们完成这个工作,就需要进行一定的规范,来确保框架可以准确的执行我们想要的操作。
接口代理开发需要遵循的规范
- xml文件中的namespace与接口的全限定名要相同
- 接口方法名和xml文件中定义的每个操作标签(如<selest>标签)中的id要相同
- 接口方法的参数类型要和xml中定义的每个sql的parameterType的类型相同
- 接口方法的返回值和xml中定义的每个sql的resultType的类型相同
先看包的位置信息:
注意上图的接口的名字,接口中方法的名字,接口中方法的返回值与参数。
与下图xml文件中的名字比较。
核心配置文件与映射文件
核心配置文件:RoleMapperConfig.xml (一般放在resource文件下)
映射文件:MyRoleMapper.xml
测试类ServiceTest
数据库中的数据:
测试结果:
第一行为查找所有的数据并封装到实体中的结果。
第二行为根据指定id查找数据并封装到实体中的结果。
同理,插入、修改、删除也只需要先在dao层的RoleMapper接口中加入相应的方法,然后再映射文件中编写对应的标签与sql语句。此过程可以全程不用编写接口的实现类。