• Mapper动态代理方式


    开发规范

     Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同Dao接口实现类方法。

    Mapper接口开发需要遵循以下规范:

    1、Mapper.xml文件中的namespace与mapper接口的类路径相同(进行一个绑定)。

    2、Mapper接口方法名和Mapper.xml中定义的每个statement的id相同

    3、Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同

    4、Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

     

    遵循以上规范创建Mapper接口即可替代原始的Dao与DaoImpl的方式。

    因为可以直接从sqlSession中获取Mapper接口的代理对象(相当于帮你生成了实现类,但返回的还是个接口)

    @Test
        public void testGetUserById() {
            // 获取sqlSession,和spring整合后由spring管理
            SqlSession sqlSession = this.sqlSessionFactory.openSession();
    
            // 从sqlSession中获取Mapper接口的代理对象(相当于SqlSession帮我生成了实现类,但返回的还是个接口)
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            // 执行查询方法
            User user = userMapper.getUserById(1);
            System.out.println(user);
    
            // 和spring整合后由spring管理
            sqlSession.close();
        }

    小结

    ♦selectOne和selectList

    动态代理对象调用sqlSession.selectOne()和sqlSession.selectList()是根据mapper接口方法的返回值决定,如果返回list则调用selectList方法,如果返回单个对象则调用selectOne方法。

    ♦namespace

    mybatis官方推荐使用mapper代理方法开发mapper接口,程序员不用编写mapper接口实现类,使用mapper代理方法时,输入参数可以使用pojo包装对象或map对象,保证dao的通用性。

  • 相关阅读:
    查看数据库错误日志的位置
    快速过滤出完整的SQL语句
    使用apidocJs快速生成在线文档
    vs开发nodejs系列之 修改新建js文件的模板
    Node.js 入门资料
    ECMAScript 6 学习资料
    NodeJS学习目录
    MongoDB学习笔记系列~目录
    sails ORM组件 Waterline v0.10 英文文档
    node.js---sails项目开发
  • 原文地址:https://www.cnblogs.com/xk920/p/9811183.html
Copyright © 2020-2023  润新知