目录
1、传统开发
1.1、代码
1.2、存在的问题
2、代理开发
2.1、开发规范
2.2、代码
⭐mybatis系列①:增删改查
1、传统开发
传统的mybatis开发中,是在数据访问层实现相应的接口,在实现类中用"命名空间.id"的形式找到对应的映射文件当中配置的sql语句,而代理开发则是通过接口类型寻找对应的执行方法。
1.1、代码
映射文件配置:
Dao层代码如下:
1.2、存在的问题
之前的代码是基本使用方式,它也存在硬编码的问题,如下:
这里调用 selectList() 方法传递的参数是映射配置文件中的namespace.id值
这样写也不便于后期的维护。如果使用Mapper 代理方式则不存在硬编码问题:
通过上面的描述可以看出 Mapper 代理方式的目的:
解决原生方式中的硬编码
简化后期执行SQL
Mybatis 官网也是推荐使用 Mapper 代理的方式。下图是截止官网的图片:
2、代理开发
采用 Mybatis 的代理开发方式实现 DAO 层的开发,这种方式是企业的主流。
Mapper 接口开发方法只需要程序员编写Mapper 接口(相当于Dao 接口),由Mybatis 框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。
2.1、开发规范
Mapper 接口开发需要遵循以下规范:
1、Mapper.xml文件中的namespace与mapper接口的全限定名相同
2、Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
3、Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同
4、Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
图解:
2.2、代码
下面是具体模拟的MVC步骤:
对应的目录如下:
①控制层:用测试框架做一个简单的模拟:
②业务层:
③数据访问层:
④编写映射文件:
⑤在配置文件中加载映射文件:
⑥测试:
结果符合预期!