mybatis单独使用时批量mappers

一般情况下,mybatis都是与spring配合使用,我们使用类似mapper-locations=classpath:mapper/**/*Mapper.xml全局配置映射的xml文件。但当mybatis单独使用时,并没有mybatis-spring包中提供扫描*.xml工具,只能通过mapper中package最大程度满足需求,以下为使用方式(默认为maven或者gradle项目架构约定):

  • mybatis 官网提供了4种mappers方式
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> 
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>  
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <package name="org.mybatis.builder"/> 
  • 项目使用时,一般不会一个一个文件去指定,所以一般采取第4种package方式
  • package name 中 并不支持 org.*.dao 类似的统配符,所以我们只能每个包定义一个模板
  • package方式默认xml文件与java文件同目录(要解决编译打包时排除xml问题),但一般习惯xml文件会放在resources中,所以得需要一些操作才能使package起作用:

    • 在resources目录中生成与java中相同目录结构,假设有3个模块,module,module1,module2,实际项目中可能是工单,客户,计费类似功能区分,对应resources中相同结构。
      mybatis单独使用时批量mappers_第1张图片
  • mybatis中配置

<mappers>
     <package name="com.module.dao"/>
     <package name="com.module1.dao"/>
     <package name="com.module2.dao"/>
mappers>

总结:本文适用于项目只依赖mybatis,如果有依赖spring,用mapper-locations即可;适用于项目结构洁癖,xml执意放进resources中;核心操作:java与resources中目录结构相同,以一个模块作为一个配置项,尽可能减少配置

你可能感兴趣的:(mybatis)