Mybatis 通用 Mapper Starter 1.0.0 发布

Liuzh_533
 Liuzh_533
发布于 2017年01月03日
收藏 43

通用Mapper都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。

极其方便的使用MyBatis单表的增删改查。

支持单表操作,不支持通用的多表联合查询。

通用 Mapper 支持 Mybatis-3.2.4 及以上版本

特别强调:不是表中字段的属性必须加 @Transient 注解

为了方便和 Spring Boot 集成,增加 mapper-spring-boot-starter 项目,在 Spring Boot 中使用通用 Mapper 只需要在 pom.xml 中添加:

<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>1.0.0</version>
</dependency>

默认情况下不需要任何配置,如果需要配置,可以在 Spring Boot 配置文件中以 mapper 为前缀进行配置。

例如:

mapper:
    mappers:
        - tk.mybatis.springboot.util.MyMapper
    not-empty: false
    identity: MYSQL

按照 Spring Boot 配置规则,属性的大写字母都变了带横线的小写字母。针对如 IDENTITY(对应i-d-e-n-t-i-t-y)全大写的属性提供了全小写的 identity 配置,如果 IDE 能自动提示,看自动提示即可。

有关 mapper-spring-boot-starter 的用法可以参考集成示例 MyBatis-Spring-Boot

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Mybatis 通用 Mapper Starter 1.0.0 发布
加载中

精彩评论

游丶戏

引用来自“Liuzh_533”的评论

Mapper 接口和 @Mapper 注解重名的问题,不管你是否需要用到这个注解。通用 Mapper 都建议你创建自己的 BaseMapper<T> extends Mapper<T>,自己的 Mapper 都去继承 BaseMapper(名字随便起),默认也不需要配置,只有当 BaseMapper 继承除 Mapper<T> 外接口时才需要配置 mappers 属性。@那一抹丶白
我发现继承了Mapper<T>, MySqlMapper<T> 不配mappers也能运行...不配会有什么问题吗?

最新评论(22

天涯明月刚
天涯明月刚
Caused by: java.lang.IllegalStateException: No typehandler found for property properties
  at org.apache.ibatis.mapping.ResultMapping$Builder.validate(ResultMapping.java:151) ~[mybatis-3.4.2.jar:3.4.2]
  at org.apache.ibatis.mapping.ResultMapping$Builder.build(ResultMapping.java:140) ~[mybatis-3.4.2.jar:3.4.2]
  at tk.mybatis.mapper.entity.EntityTable.getResultMap(EntityTable.java:212) ~[mapper-3.3.9.jar:na]
  at tk.mybatis.mapper.mapperhelper.MapperTemplate.setResultType(MapperTemplate.java:165) ~[mapper-3.3.9.jar:na]
  at tk.mybatis.mapper.provider.base.BaseSelectProvider.selectOne(BaseSelectProvider.java:52) ~[mapper-3.3.9.jar:na]
  
  
  at tk.mybatis.mapper.mapperhelper.MapperTemplate.setSqlSource(MapperTemplate.java:234) ~[mapper-3.3.9.jar:na]
  ... 30 common frames omitted
天涯明月刚
天涯明月刚

引用来自“天涯明月刚”的评论

有人遇到过上面的错误吗

引用来自“Liuzh_533”的评论

非表字段需要加注解忽略!
试了 还是不行 :bowtie:
Liuzh_533
Liuzh_533

引用来自“天涯明月刚”的评论

有人遇到过上面的错误吗
非表字段需要加注解忽略!
天涯明月刚
天涯明月刚
有人遇到过上面的错误吗
天涯明月刚
天涯明月刚
Caused by: java.lang.RuntimeException: java.lang.IllegalStateException: No typehandler found for property properties
  at tk.mybatis.mapper.mapperhelper.MapperTemplate.setSqlSource(MapperTemplate.java:246) ~[mapper-3.3.9.jar:na]
  at tk.mybatis.mapper.mapperhelper.MapperHelper.setSqlSource(MapperHelper.java:244) ~[mapper-3.3.9.jar:na]
  ... 33 common frames omitted
天涯明月刚
天涯明月刚
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.IllegalStateException: No typehandler found for property properties
  at tk.mybatis.mapper.mapperhelper.MapperHelper.setSqlSource(MapperHelper.java:247) ~[mapper-3.3.9.jar:na]
  at tk.mybatis.mapper.mapperhelper.MapperHelper.processConfiguration(MapperHelper.java:310) ~[mapper-3.3.9.jar:na]
  at tk.mybatis.mapper.mapperhelper.MapperHelper.processConfiguration(MapperHelper.java:289) ~[mapper-3.3.9.jar:na]
...
天涯明月刚
天涯明月刚
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.github.pagehelper.autoconfigure.MapperAutoConfiguration': Invocation of init method failed; nested exception is java.lang.RuntimeException: java.lang.RuntimeException: java.lang.IllegalStateException: No typehandler found for property properties
  at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:137)
游丶戏

引用来自“Liuzh_533”的评论

Mapper 接口和 @Mapper 注解重名的问题,不管你是否需要用到这个注解。通用 Mapper 都建议你创建自己的 BaseMapper<T> extends Mapper<T>,自己的 Mapper 都去继承 BaseMapper(名字随便起),默认也不需要配置,只有当 BaseMapper 继承除 Mapper<T> 外接口时才需要配置 mappers 属性。@那一抹丶白

引用来自“游丶戏”的评论

我发现继承了Mapper<T>, MySqlMapper<T> 不配mappers也能运行...不配会有什么问题吗?

引用来自“Liuzh_533”的评论

Mapper 的方法能用,调用 MySqlMapper 方法就会报错。
😂原来如此,3Q
Liuzh_533
Liuzh_533

引用来自“Liuzh_533”的评论

Mapper 接口和 @Mapper 注解重名的问题,不管你是否需要用到这个注解。通用 Mapper 都建议你创建自己的 BaseMapper<T> extends Mapper<T>,自己的 Mapper 都去继承 BaseMapper(名字随便起),默认也不需要配置,只有当 BaseMapper 继承除 Mapper<T> 外接口时才需要配置 mappers 属性。@那一抹丶白

引用来自“游丶戏”的评论

我发现继承了Mapper<T>, MySqlMapper<T> 不配mappers也能运行...不配会有什么问题吗?
Mapper 的方法能用,调用 MySqlMapper 方法就会报错。
游丶戏

引用来自“Liuzh_533”的评论

Mapper 接口和 @Mapper 注解重名的问题,不管你是否需要用到这个注解。通用 Mapper 都建议你创建自己的 BaseMapper<T> extends Mapper<T>,自己的 Mapper 都去继承 BaseMapper(名字随便起),默认也不需要配置,只有当 BaseMapper 继承除 Mapper<T> 外接口时才需要配置 mappers 属性。@那一抹丶白
我发现继承了Mapper<T>, MySqlMapper<T> 不配mappers也能运行...不配会有什么问题吗?
返回顶部
顶部