美文网首页
03|第三课:Mybatis约定以及基于动态代理方式的CRUD

03|第三课:Mybatis约定以及基于动态代理方式的CRUD

作者: 木头amo | 来源:发表于2019-02-19 09:05 被阅读6次

一、历史回顾

(一)、上节课总结的注意事项

1、如果使用的事务方式为JDBC,则需要手工commit提交,即session.commit();

2、所有的标签<select>、<update>等,都必须有SQL语句,但是SQL参数值可选。带条件的就需要第二个参数。

二、Mybatis约定以及基于动态代理方式的CRUD

(一)、mapper动态代理方式的CRUD(Mybatis接口开发)

1、原则:约定优于配置(maven讲过这些,请自己回顾)

2、具体实现步骤:

(1)、在上节课的CRUD例子的基础上

(2)、不同之处:

约定的目标:省略掉statement,即根据约定直接可以定位出SQL语句。

接口遵循的规则:

* 1、方法名和mapper.xml文件中标签的id值相同

* 2、方法的输入参数和mapper.xml文件中标签的parameterType类型一致。(如果没有parameterType,则没有方法参数)

* 3、方法的返回值 和 mapper.xml的resultType类型一致。(如果没有resultType,则没有方法返回值为void)

注意:除了以上约定,要是实现接口中的方法和xxxMapper.xml中的SQL标签一一对应,还需要以下两点:

匹配的过程:(约定的过程)

(a)、根据接口名找到mapper.xml文件(根据的是namespace=接口全类型)

(b)、根据接口的方法名找到mapper.xml文件中的SQL标签(方法名=SQL标签Id值)

以上两点可以保证:当我们调用接口中的方法,程序能自动定位到某一个mapper.xml中的SQL标签。

总结:以上可以通过接口的方法 ---> SQL语句。执行:

PersonMapper personMapper = (PersonMapper) sqlSession.getMapper(PersonMapper.class);

personMapper .方法();

通过session对象获取接口(sqlSession.getMapper(接口.class)),在调用该接口中的方法,程序会自动执行该方法对应的SQL。

例:

新增PersonMapper.java接口:并且将接口和xxxMapper.xml文件放在一个文件夹,并修改xxxMapper.xml和conf.xml对于xxxMapper.xml的配置路径

图示

新建testInterfaceClient测试类:

图1 图2 图3

相关文章

网友评论

      本文标题:03|第三课:Mybatis约定以及基于动态代理方式的CRUD

      本文链接:https://www.haomeiwen.com/subject/irraeqtx.html