1  spring Data jpa

hibernate引领数据访问技术,使用orm对象关系映射来进行数据库访问,通过模型和数据库进行映射,通过操作对象实现对数据库操作,把数据库相关操作从代码中独立出来。随着hibernate盛行,hibernate主导了JPA规范,即 java persistence api。jps是一个基于orm映射的标准,主要实现有hibernate,eclipselinke,openjpa等。springDataJPA是spirng data的一个子项目,提供了基于jpa的Repository接口,极大减少了数据访问的代码开发。

spring boot 对jpa的自动配置,放在org.springframework.boot.autoconfigure.com.jpa下面,包含hibernate的自动配置,说明spring默认jpa的实现者是hibernate。JpaProperties里面,使用的配置是@ConfigurationProperties(prefix = "spring.jpa"),所以在配置数据库连接属性时以这个为开头。在JpaBaseConfiguration里面,自动配置了transactionManager,jpaVendorAdapter,enetityMappingFactory等bean,还包含一个getPackagesToScan方法,用于扫描所有@Entity的bean。对于使用hibernate时页面出现的会话连接关闭错误,也自动配置了open session in view 过滤器 OpenEntityManagerInViewIntegerceptor,非常方便。

(1)配置数据库连接 和引入mvn

  引入mvn配置,以mysql为例,

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>5.1.21</version>
</dependency>

通过property配置需要的数据库参数,如:

spring.datasource.url=jdbc:mysql://10.72.218.15:3306/MerchantQrCode?characterEncoding=UTF8&socketTimeout=60000
spring.datasource.username=merchantqrcode
spring.datasource.password=dp!@BJudIZgTA
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

(2)定义数据访问层

继承JpaRepository接口,  如

public interface ShopTypeRepository extends JpaRepository<BcQrSceneShopType,Integer> ,继承接口后会自动注入,不需要加@configuration @bean等进行配置,可以直接@Autowired注入使用。继承JpaRepository接口,就已经默认可以使用下面一些基础方法:

(3)定制查询

spingdata jpa 支持通过定义在repository接口中的方法名来定义查询,例如  findByName(String name) 就会以name为列进行查询,findByNameLike 相当于name like xxx ,其中findBy可以用find,read,query,queryBy,get,getBy 来代替。各种定义规范实例如下表:

如果想限制数量,可以使用findFirst10ByName这种,如果要使用排序,可以使用sort对象,如 findByName("xxx",new Sort(Derection.ASC,"age")),如果想使用分页,就用PageRequest,如findByName("xx",new PageRequest(0,10))。如果排序+分页,就在PageRequest里面再加个sort对象参数。

2 接入mybatis

首先加入mybatis依赖,

<dependency>
             <groupId>org.mybatis.spring.boot</groupId>
             <artifactId>mybatis-spring-boot-starter</artifactId>
             <version>1.1.1</version>
    </dependency>

然后编写dao,注意加上@Mapper,使用起来和正常mybatis一样,然后在调用处直接注入即可。

@Mapper
public interface QrcodeDAO { @Select("select count(1) from BC_QR_Scene")
int findCount(); @Select("select ID,Name,SceneCode from BC_QR_Scene where ID = #{id}")
QrCodeScene findById(@Param("id")int id);
}

springBoot数据库jpa+对接mybatis的更多相关文章

  1. springboot整合jpa和mybatis实现主从复制

    百度多方参考终于配出我自己的了,以下仅供参考 参考https://www.cnblogs.com/cjsblog/p/9712457.html 代码 首先数据源配置 spring.datasource ...

  2. springboot集成jpa操作mybatis数据库

    数据库如下 CREATE TABLE `jpa`.`Untitled` ( `cust_id` bigint() NOT NULL AUTO_INCREMENT, `cust_address` var ...

  3. SpringBoot的学习二:整合Redis,JPA,Mybatis

    Redis介绍: 是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API 特性: Redis 与其他 key - value 缓 ...

  4. 第11章—使用对象关系映射持久化数据—SpringBoot+SpringData+Jpa进行查询修改数据库

    SpringBoot+SpringData+Jpa进行查询修改数据库 JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分.但它又不限于EJB 3.0,你可以在Web应用.甚至桌面应用 ...

  5. 用SpringBoot+MySql+JPA实现对数据库的增删改查和分页

    使用SpringBoot+Mysql+JPA实现对数据库的增删改查和分页      JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述 ...

  6. SpringBoot+神通数据库+JPA

    先上原文 https://blog.csdn.net/Helloworld_pang/article/details/114266130 一.SpringBoot + 神通数据库 基本上按照上面的参考 ...

  7. Spring Data JPA系列2:SpringBoot集成JPA详细教程,快速在项目中熟练使用JPA

    大家好,又见面了. 这是Spring Data JPA系列的第2篇,在上一篇<Spring Data JPA系列1:JDBC.ORM.JPA.Spring Data JPA,傻傻分不清楚?给你个 ...

  8. spring jpa和mybatis整合

    spring jpa和mybatis整合 前一阵子接手了一个使用SpringBoot 和spring-data-jpa开发的项目 后期新加入一个小伙伴,表示jpa相比mybatis太难用,多表联合的查 ...

  9. 持久层框架JPA与Mybatis该如何选型

    一.现状描述 目前java 持久层ORM框架应用最广泛的就是JPA和Mybatis.JPA只是一个ORM框架的规范, 对该规范的实现比较完整就是Spring Data JPA(底层基于Hibernat ...

随机推荐

  1. vs plug

    工欲善其事,必先利其器.尽管visual studio本身已经非常强大,但优秀的插件仍然可以帮开发者大大提高效率,以下是牛牛非常喜欢的vs插件. 1.Indent Guides 绝对是必须的,有了这些 ...

  2. 13-THREE.JS 点光源

    <!DOCTYPE html> <html> <head> <title>Example 03.02 - point Light</title&g ...

  3. 第二次ScrumMeeting

    每个人的工作(有Issue的内容和链接):昨天已完成的工作,今天计划完成的工作:工作中遇到的困难. 团队成员 昨日完成任务 明日要完成的任务 易子沐 前端框架学习 issue16 搭建主页框架 iss ...

  4. uva11078 - Open Credit System(动态维护关键值)

    这道题使用暴力解法O(n*n)会超时,那么用动态维护最大值可以优化到O(n).这种思想非常实用. #include<iostream> #include<cstdio> #in ...

  5. InnoDB引擎的特点及优化方法

    1.什么是InnoDB引擎?      InnoDB引擎是MySQL数据库的另一个重要的存储引擎,正成为目前MySQL AB所发行的新版的标准,被包含在所有二进制安装包里,和其他存储引擎相比,Inno ...

  6. angular +H5 上传图片 与预览图片

    //index.html <form class="form-horizontal"> <div class="panel panel-default& ...

  7. hdu 1028 && hdu 1398 && hdu 1085 && hdu 1171 ——生成函数

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1028 就是可以用任意个1.2.3....,所以式子写出来就是这样:(1+x+x^2+...)(1+x^2+ ...

  8. bzoj 4559 [JLoi2016]成绩比较——拉格朗日插值

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4559 关于拉格朗日插值,可以看这些博客: https://www.cnblogs.com/E ...

  9. boost_1.61.0编译安装

    1.下载源码boost_1_61_0.zip 2.进入目录 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shor ...

  10. (转)配置ORACLE 11g绿色版客户端和PLSQL环境

    本文转载自:http://my.oschina.net/jang/blog/83009 本方法是通过使用ORACLE官方提供的精简版客户端,即绿色免安装的客户端. 下载地址(此处提供的是官方各版本下载 ...