mybatis-jpa 如何集成mybatis-jpa:使用示例自定义扩展 mybatis 版的 springdatajpa

程序名称:mybatis-jpa 如何集成mybatis-jpa:使用示例自定义扩展

授权协议: Apache

操作系统: 跨平台

开发语言: Java

mybatis-jpa 如何集成mybatis-jpa:使用示例自定义扩展 介绍

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版本主要实现目标为对MysqLsqlserver、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更加完善。

mybatis-jpa 如何集成mybatis-jpa:使用示例自定义扩展 官网

https://git.oschina.net/0A0/mybatis-jpa/wikis/Home

相关编程语言

BlazeDS 是一个基于服务器的Java 远程控制(remoting...
OVal 是一个可扩展的Java对象数据验证框架,验证的规...
Volta 是一套开发工具,专为开发分布式、实时系统应...
OpenDDS 是一个开源的 C++ 实现的 对象管理组织 OMG...
JADE (Java Agent DEvelopment Framework) 是一个完...
FastMM ,在D2006和2007中已代替了原来的内存管理器。