概述
代理开发方式介绍
采用Mybatis的代理开发方式实现Dao层的开发,这种方式是现在进入企业的主流。Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis 框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。
Mapper接口开发需要遵循以下规范:
1、Mapper.xml文件中的namespace与mapper接口的全限定名相同
2、Mapper接口方法名和Mapper.xm|中定义的每个statement的id相同
3、Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同
4、Mapper接口方法的输出参 数类型和mapper .xm|中定义的每个sql的resultType的类型相同
即:
简单来说,我们按照规则来编写接口和配置文件后,我们可以直接来使用接口中的方法,接口具体的实现由MyBatis实现。从原理上来讲,我们调用接口的方法其实就是调用MyBatis为我们实现接口来创建的对象中的方法
一般的Dao
这里一个简单的MyBatis的Dao
配置文件:
然后:接口的实现
然后测试:成功
代理开发的简单实现
先实现这些规范
-
Mapper.xml文件中的namespace与mapper接口的全限定名相同(这里全限定名即接口的全类名)
Mapper.xml文件中的namespace:
接口:
-
Mapper接口方法名和Mapper.xm|中定义的每个statement的id相同(statement即对数据库的操作)
接口:
Mapper.xm|中定义的一个statement: -
Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同
这里输入参数的类型就是指存储或者修改的时候,我们向mapper.xml中传递的对象类型
这里我们这个简单的实现没有参数 -
Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
这里指的是具体的对象类型。如果是集合,则按照集合中存储的数据的类型来算
接口方法的输出参数类型:
sql的resultType的类型:
然后:
一个带有参数的测试