发布于 2017-02-21 02:55:49 | 154 次阅读 | 评论: 0 | 来源: 网友投递
Mybatis 通用 Mapper
极其方便的使用Mybatis单表的增删改查支持单表操作,不支持通用的多表联合查询
MyBatis 通用 Mapper 极其方便的使用MyBatis单表的增删改查,支持单表操作,不支持通用的多表联合查询。通用 Mapper 可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。
Example增加 for update 支持,仅能用于 selectByExample 和 selectCountByExample 方法 #210
Example.Criteria增加andAllEqualTo方法,将此对象的所有字段参数作为相等查询条件,如果字段为 null,则为 is null #206
增加参数checkExampleEntityClass,默认false用于校验通用 Example 构造参数 entityClass 是否和当前调用的 Mapper 类型一致 #201
增加参数useSimpleType,默认false,启用后判断实体类属性是否为表字段时校验字段是否为简单类型,如果不是就忽略该属性,这个配置优先级高于所有注解
增加参数simpleTypes,默认的简单类型在SimpleTypeUtil中,使用该参数可以增加额外的简单类型,通过逗号隔开的全限定类名添加
所有RuntimeException异常改为tk.mybatis.mapper.MapperException异常
所有 Update 方法添加@Options(useCache = false, useGeneratedKeys = false),fix #216
使用自定义的SelectKeyGenerator,防止有默认值时被替换掉 fix #213
将 MapperTemplate 属性改为 protected
MBG 插件中 generatedKey 元素的 sqlStatement 属性可以配置为形如 select SEQ_{1} from dual 的 SQL,其中 {0} 代表小写的表名,{1} 是大写的表名
MBG 插件 generatedKey 新的用法示例,针对使用类似 Oracle 序列的方式:
<generatedKey column="id" sqlStatement="select SEQ_{1}.nextval from dual" identity="false" type="pre"/>
生成代码的效果:
public class Author { @Id @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "select SEQ_AUTHOR.nextval from dual") private Integer id; // 省略其他 }