mybatis 版的 spring-data-jpa mybatis-jpa

码农软件 · 软件分类 · ORM/持久层框架 · 2019-09-23 07:58:55

软件介绍

mybatis-jpa

当时看到spring-data-jpa用方法名来定义sql查询感觉非常好,后来用了一段时间,因为spring-data-jpa是基于hibernate,而我的hibernate又是非常不好,于是在网上查询了相关资料,主要借鉴了mybatis通用mapper的实现方式,写了一版mybatis版的spring-data-jpa:

  • 1.x版本预期实现目标:(如没有重大逻辑性错误,1.0正式版本将在2016年11月30日前发布。)  1.0版本主要实现目标为对mysql、sqlserver、oracle等三大数据库的单表操作,并在后续1.x版本中增加其它的数据库单表操作实现

  • 2.x版本展望目标:实现多表的级联查询

如何集成mybatis-jpa:

只需要将org.mybatis.spring.mapper.MapperFactoryBean這个类替换成mybatis-jpa的com.woodws.mybatis.jpa.MyMapperFactoryBean。因为使用了jpa规范所以需要导入javax.persistence相关jar包

```
    <!-- MyBatis配置 -->
    <bean id="sqlSessionFactory" class="com.woodws.mybatis.jpa.JpaMapperFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="typeAliasesPackage" value="com.woodws"/>
        <property name="mapperLocations" value="${sqlSessionFactory.mapperLocations}" />
    </bean>
```

使用示例

只需要在mapper接口方法中按着方法命名规范命名mybatis-jpa将自动生成相关的sql,mapper.xml中的配置为主,只要当在mapper.xml中没有的sqlId才会自动生成,命名规范可以查询com.woodws.mybatis.jpa.Definition

```
List<User> findOrderByAge();
    List<User> findOrderByAgeDesc();
    List<User> findByNameOrderByAge(String name);
    List<User> findByNameOrAgeGreaterOrderByAge(@Param("name") String name,
                                                @Param("age") Integer age);
    String findNameById(Integer id);
    int updateName(User user);
    List<User> findByNameLike(String name);
```

自定义扩展

当命名规范于自己的习惯不一致的时候可以增加相关的规范,或者想添加命名解析sql查询,如下就是增加FUNCTION方法命名查询(FUNCTION、PROCEDURE在1.0版本中将自带支持)

```
Definition.expand("func","FUNCTION", Function.class);
```

同时希望各位网友能提出宝贵的意见和改进代码,让mybatis-jpa更加完善。

本文地址:https://codercto.com/soft/d/15204.html

产品经理全栈运营实战笔记

产品经理全栈运营实战笔记

林俊宇 / 化学工业出版社 / 49.8元

本书凝结作者多年的产品运营经验,读者会看到很多创业公司做运营的经验,书中列举了几十个互联网产品的运营案例去解析如何真正做好一个产品的冷启动到发展期再到平稳期。本书主要分为六篇:互联网运营的全面貌;我的运营生涯;后产品时代的运营之道;揭秘刷屏事件的背后运营;技能学习;深度思考。本书有很多关于产品运营的基础知识,会帮助你做好、做透。而且将理论和作者自己的案例以及其他人的运营案例结合起来,会让读者更容易......一起来看看 《产品经理全栈运营实战笔记》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具