1. 集成通用 Mapper

添加 Maven 依赖或引入 Jar 包

如果你使用 Maven,只需要添加如下依赖:

<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper</artifactId>
    <!-- 建议使用最新版本,最新版本请从项目首页查找 -->
    <version>x.x.x</version>
</dependency>

如果你想引入Jar包,你可以从下面的地址下载:

https://oss.sonatype.org/content/repositories/releases/tk/mybatis/mapper

http://repo1.maven.org/maven2/tk/mybatis/mapper

由于通用Mapper依赖JPA,所以还需要下载persistence-api-1.0.jar:

http://repo1.maven.org/maven2/javax/persistence/persistence-api/1.0/

集成通用Mapper

3.2.0 版本以后配置更简单,以前的拦截器不能继续使用。

配置方式分为 Java 编码方式和 Spring 集成方式。

1). Java 编码方式

MapperHelper mapperHelper = new MapperHelper();
//特殊配置
Config config = new Config();
//具体支持的参数看后面的文档
config.setXXX(XXX);
//设置配置
mapperHelper.setConfig(config);
// 注册自己项目中使用的通用Mapper接口,这里没有默认值,必须手动注册
mapperHelper.registerMapper(Mapper.class);
//配置完成后,执行下面的操作
mapperHelper.processConfiguration(session.getConfiguration());

2). 纯 Spring 配置方式

<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.isea533.mybatis.mapper"/>
    <property name="properties">
        <value>
            mappers=tk.mybatis.mapper.common.Mapper
        </value>
    </property>
</bean>

你没看错,就是这么配置的,注意这里是 tk.mybatis.xxx,和MyBatis的唯一区别就是 org. 改成了 tk.,方便修改和记忆。

通用Mapper的各项属性通过 properties 属性进行配置,如果默认配置就是一行mappers=tk.mybatis.mapper.common.Mapper时,可以不写,就会变成:

<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.isea533.mybatis.mapper"/>
</bean>

关于 MyBatis-Spring 详细配置的可以查看MyBatis-Spring配置简单了解



可配参数介绍

  • UUID:设置生成UUID的方法,需要用OGNL方式配置,不限制返回值,但是必须和字段类型匹配
  • IDENTITY:取回主键的方式,可以配置的内容看下一篇如何使用中的介绍
  • ORDER<selectKey>中的order属性,可选值为BEFOREAFTER
  • catalog:数据库的catalog,如果设置该值,查询的时候表名会带catalog设置的前缀
  • schema:同catalogcatalog优先级高于schema
  • seqFormat:序列的获取规则,使用{num}格式化参数,默认值为{0}.nextval,针对Oracle,可选参数一共4个,对应0,1,2,3分别为SequenceName,ColumnName, PropertyName,TableName
  • notEmpty:insert和update中,是否判断字符串类型!='',少数方法会用到
  • style:实体和表转换时的规则,默认驼峰转下划线,可选值为normal用实体名和字段名;camelhump是默认值,驼峰转下划线;uppercase转换为大写;lowercase转换为小写
  • enableMethodAnnotation:可以控制是否支持方法上的JPA注解,默认false

使用Properties文件配置时使用上面的属性名,使用Config类配置时,调用相应的setter即可。