zoukankan      html  css  js  c++  java
  • Mybatis中映射器实现方式总结

    一种是通过XML文件方式(由一个java接口和一个XML文件构成)

    RoleMapper rm = session.getMapper(RoleMapper.class);
    List<Role> roleList = rm.readAll();
    

    二种是通过java注解方式(直接在java接口里写注解配置sql,需要addMapper(xxMapper.class)显式注册映射类)

    session.addMapper(RoleMapper.class);
    RoleMapper rm = session.getMapper(RoleMapper.class);
    List<Role> roleList = rm.readAll();
    

    三种其实是iBatis遗留的通过 "命名空间(namespace)+SQL id"的方式发送SQL并返回数据的方式,只要有一个XML文件,而不需要去获取映射器

    String statement = "cn.zdp.mapping.roleMapper.getRole";// 映射sql的标识字符串
    Role role = session.selectOne(statement, 6);
    

     总结就是一、三都需要XML文件,二不需要XML文件

    一、二需要java接口,三不需要java接口

    那么我们还用通过头两种方式搞个接口吗,答案是肯定的,通过接口可以进一步屏蔽SqlSession这个对象,降低耦合。也是MyBatis比iBatis升级的地方。

    那么干脆通过方式二直接注解sql配置到接口也省了XML文件了,但是貌似sql写到java代码里不能实现分离功能了。这个就看实际需求是简单还是分离了。

    SpringMVC+MyBatis的话更方便了,mybatis-spring可以将mapper接口自动生成代理

    在applicationContext中配置Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        	<property name="basePackage" value="cn.baseapp.dao"/>
    </bean>
    

    附图,引入映射器的方式

  • 相关阅读:
    C#动态调用webservice方法
    WinForm客户端调用 WebService时 如何启用Session
    C# 调用 Web Service 时出现 : 407 Proxy Authentication Required错误的解决办法
    ms sql 在任何位置 添加列
    Python requests
    LookupError: unknown encoding: cp65001
    [转]HTTP请求模型和头信息参考
    【原】使用StarUML画用例图
    【微信转载】Google是如何做测试的
    手机SD卡损坏补救措施
  • 原文地址:https://www.cnblogs.com/coolzdp/p/7119609.html
Copyright © 2011-2022 走看看