2019-03-17 mapper代理开发方法

总结原始dao开发问题

  • dao接口实现类方法中存在大量模板方法,设想能否将这些代码提取出来,大大减轻程序员的工作量。
  • 调用sqlsession方法时将Statement的id硬编码了。
  • 调用sqlsession方法时传入的变量,由于sqlsession方法使用泛型,即使变量类型传入错误,在编译阶段也不报错,不利于程序员开发。

mapper代理开发方法

  • 程序员需要编写mapper.xml映射文件
    程序员编写mapper接口需要遵循一些开发规范,mybatis可以自动生成mapper接口实现类代理对象

开发规范

1.在mapper.xml中的namespace等于mapper接口的地址。

<!-- namespace命令空间,作用就是对sql进行分类化管理,理解sql隔离
注意:使用mapper代理方法开发,namespace有特殊重要的作用 namespace等于mapper接口的地址
-->

<mapper namespace="cn.iven.mybatis.mapper.UserMapper">

2.mapper.java接口中的方法名和mapper.xml中statement的id一致。

3.mapper.java接口中的方法输入参数类型和mapper.xml中的statement的parameterType指定的类型一致。

4.mapper.java接口中的方法返回参数类型和mapper.xml中的statement的resultType指定的类型一致。

mapper.xml

<select id="findUserById" parameterType="int" resultType="cn.iven.mybatis.po.User">
        SELECT * FROM user WHERE id=#{id}
    </select>

mapper接口

//根据id查询用户信息
    public User findUserById(int id) throws Exception;

总结

以上开发规范主要是对下边的代码进行统一生成:
User user = sqlSession.selectOne("test.findUserById", id);
sqlSession.insert("test.insertUser", user);
sqlSession.delete("test.deleteUser", id);

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容