springBoot数据库jpa+对接mybatis
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的更多相关文章
- springboot整合jpa和mybatis实现主从复制
		
百度多方参考终于配出我自己的了,以下仅供参考 参考https://www.cnblogs.com/cjsblog/p/9712457.html 代码 首先数据源配置 spring.datasource ...
 - springboot集成jpa操作mybatis数据库
		
数据库如下 CREATE TABLE `jpa`.`Untitled` ( `cust_id` bigint() NOT NULL AUTO_INCREMENT, `cust_address` var ...
 - SpringBoot的学习二:整合Redis,JPA,Mybatis
		
Redis介绍: 是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API 特性: Redis 与其他 key - value 缓 ...
 - 第11章—使用对象关系映射持久化数据—SpringBoot+SpringData+Jpa进行查询修改数据库
		
SpringBoot+SpringData+Jpa进行查询修改数据库 JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分.但它又不限于EJB 3.0,你可以在Web应用.甚至桌面应用 ...
 - 用SpringBoot+MySql+JPA实现对数据库的增删改查和分页
		
使用SpringBoot+Mysql+JPA实现对数据库的增删改查和分页 JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述 ...
 - SpringBoot+神通数据库+JPA
		
先上原文 https://blog.csdn.net/Helloworld_pang/article/details/114266130 一.SpringBoot + 神通数据库 基本上按照上面的参考 ...
 - Spring Data JPA系列2:SpringBoot集成JPA详细教程,快速在项目中熟练使用JPA
		
大家好,又见面了. 这是Spring Data JPA系列的第2篇,在上一篇<Spring Data JPA系列1:JDBC.ORM.JPA.Spring Data JPA,傻傻分不清楚?给你个 ...
 - spring jpa和mybatis整合
		
spring jpa和mybatis整合 前一阵子接手了一个使用SpringBoot 和spring-data-jpa开发的项目 后期新加入一个小伙伴,表示jpa相比mybatis太难用,多表联合的查 ...
 - 持久层框架JPA与Mybatis该如何选型
		
一.现状描述 目前java 持久层ORM框架应用最广泛的就是JPA和Mybatis.JPA只是一个ORM框架的规范, 对该规范的实现比较完整就是Spring Data JPA(底层基于Hibernat ...
 
随机推荐
- Gridview中Datakeys 通过主键取得各列的值。
			
首先在初始化Gridview时候定义主键的数组. GridViewTeacherStudent.DataKeyNames=new string[] {"courseId",&quo ...
 - 论文笔记 — L2-Net: Deep Learning of Discriminative Patch Descriptor in Euclidean Space
			
论文: 本文主要贡献: 1.提出了一种新的采样策略,使网络在少数的epoch迭代中,接触百万量级的训练样本: 2.基于局部图像块匹配问题,强调度量描述子的相对距离: 3.在中间特征图上加入额外的监督: ...
 - Java map简介
			
了解最常用的集合类型之一 Map 的基础知识以及如何针对您应用程序特有的数据优化 Map. 本文相关下载: · Jack 的 HashMap 测试· Oracle JDeveloper 10g jav ...
 - hzau 1208 Color Circle(dfs)
			
1208: Color Circle Time Limit: 1 Sec Memory Limit: 1280 MBSubmit: 289 Solved: 85[Submit][Status][W ...
 - 用lsmod看硬盘驱动决定是sata还是scsi盘
			
sas盘 scsi盘 sata盘都是显示为sdx的所以无法区别唯一可以分别的是看看内核加载的驱动模块有啥 lsmod....mptsas 62545 7
 - 分布式_理论_04_ 3PC
			
一.前言 五.参考资料 1.分布式理论(四)—— 一致性协议之 3PC 2.分布式理论(四) - 3PC协议 3.
 - Eclipse插件开发_异常_01_java.lang.RuntimeException: No application id has been found.
			
一.异常现象 在运行RCP程序时,出现 java.lang.RuntimeException: No application id has been found. at org.eclipse.equ ...
 - 部署你的分布式调用链跟踪框架skywalking
			
使用docker-compose 一键部署你的分布式调用链跟踪框架skywalking https://www.cnblogs.com/huangxincheng/p/9666930.html 一旦你 ...
 - Oracle hash分区的秘密
			
转自:http://www.hellodb.net/2009/12/hash_partition.html 在面试时经常会问一个问题,请列举出hash在数据库内部的应用,hash的原理虽然简单,但是它 ...
 - ACM学习历程—Hihocoder 1291 Building in Sandbox(dfs && 离线 && 并查集)
			
http://hihocoder.com/problemset/problem/1291 前几天比较忙,这次来补一下微软笔试的最后一题,这题是这次微软笔试的第四题,过的人比较少,我当时在调试B题,没时 ...