二、springboot使用jpa
花了几天时间,好好看了看springboot的jpa部分,总结了常用的形式。
1.通过STS工具添加jpa的依赖项
要连mysql,测试的时候需要web,顺便添加了lombok不写set和get方法了。
2.添加配置
application.properties:
要连接mysql、设置jpa的两个参数,一个是更改entity后更新表,还一个是显示sql,为了查错用
添加一个config类,开启jpa,添加扫描repository路径
最后需要建立一个web请求入口,方便调用调试,增加web很简单,这里就不说了。
3。添加entiry
写了两个类,一个MemberInfo 一个OrderInfo,OrderInfo包含了一个外键,为了测试一对多。
与数据库字段名相同的,可以不写column注解
4.建立repository
Repository是springboot data中的接口,不光是与db有关,相当于是个模板,与mongo、redis等都有一定关系,这里就不提了。
JpaRepository是使用jpa需要继承的接口,这个接口继承自Repository,只不过中间还有几层,包括crudRepository、pageRepository。
继承关系JpaRepository->PagingAndSortingRepository->CrudRepository->Repository
不同的接口之间包含了一些已有方法,其中包含分页。
下面建立自己的:一共建立了4个Repository,其中有一个是专门为了写sql的
@EnableJpaRepositories("com.xuezk.study.repository") 注解会扫描所有 extends JpaRepository的接口,但使用了@NoRepositoryBean注解的是不会被实例化的。其他两个接口直接继承Base就可以了。
专门用于写sql的接口:
说明:
1.每个方法上都可以使用@Query注解去写sql,但jpa的sql语法与hql相似,写的不是字段名,而是类里面的属性名。
2.jpa,会根据方法名字,比如findByName,就是根据name属性去查,关于Pageable,这是分页用的,作为参数后,执行的sql最后就会有limit限制。
3.关于最后接口中的 new MemberInfo,这么写是为了返回的结果存入对象内,否则返回的结果会是数组,与hibernate一样。
5.关于Pageable
作为分页的参数,Pageable却是一个接口,翻开源码包下面有一个PageRequest
Pageable实例化并不难
6。最后
我自己写的例子包含了一个service,分别去调用这几个Repository的方法,顺便打印出来。
jpa有一个特点我很喜欢,就是findBy的后面可以是对象,比如通过外键对象去查本条记录。
例子放在https://github.com/xuezhankui/SpringbootExample,使用testcontroller调用
二、springboot使用jpa的更多相关文章
- SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二
SpringBoot 使用JPA+MySQL+Thymeleaf 总结 一 SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二 方法一 使用原生sql查询 或者 为方法名增加 ...
- SpringBoot数据访问(二) SpringBoot整合JPA
JPA简介 Spring Data JPA是Spring Data大家族的一部分,它可以轻松实现基于JPA的存储库.该模块用于增强支持基于JPA的数据访问层,它使我们可以更加容易地构建使用数据访问技术 ...
- 带你搭一个SpringBoot+SpringData JPA的环境
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 不知道大家对SpringBoot和Spring Da ...
- 用SpringBoot+MySql+JPA实现对数据库的增删改查和分页
使用SpringBoot+Mysql+JPA实现对数据库的增删改查和分页 JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述 ...
- SpringBoot 使用JPA+MySQL+Thymeleaf 总结 一
SpringBoot 使用JPA+MySQL+Thymeleaf 总结 一 SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二 pom引用 <?xml version=& ...
- springboot支付项目之springboot集成jpa
springboot集成spring-jpa 本文主要内容: 1:spring boot怎么集成spring-jpa以及第一个jpa查询示例 如jpa几个常用注解.lombok注解使用 2:怎么设置i ...
- Springboot+Atomikos+Jpa+Mysql实现JTA分布式事务
1 前言 之前整理了一个spring+jotm实现的分布式事务实现,但是听说spring3.X后不再支持jotm了,jotm也有好几年没更新了,所以今天整理springboot+Atomikos+jp ...
- 【极简版】SpringBoot+SpringData JPA 管理系统
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 在上一篇中已经讲解了如何从零搭建一个SpringBo ...
- Springboot+MyBatis+JPA集成
1.前言 Springboot最近可谓是非常的火,本人也在项目中尝到了甜头.之前一直使用Springboot+JPA,用了一段时间发现JPA不是太灵活,也有可能是我不精通JPA,总之为了多学学Sp ...
随机推荐
- NB-IoT不一定最完美 但足以成为决定ofo与摩拜物联网胜负的关键【转】
转自:http://news.rfidworld.com.cn/2017_11/3d5ed5c5d8cb9949.html 2018年到来之前,如果还不懂物联网,你会被淘汰. 今年1月,工信部< ...
- bootstrap轮播图 两侧半透明阴影
用bootstrap轮播图:Carousel插件,图片两侧影音实在碍眼,想去掉,首先发现有css里由opacity: 0.5这个东西来控制,全部改成opacity: 0.0,发现指示箭头也看不见了. ...
- springboot集成mybatis源码分析-启动加载mybatis过程(二)
1.springboot项目最核心的就是自动加载配置,该功能则依赖的是一个注解@SpringBootApplication中的@EnableAutoConfiguration 2.EnableAuto ...
- leetcode目录
Leetcode 1. 数组 2. 动态规划 3. 字符串 4. 链表.双指针.排序 5. 树 6. 回溯算法.贪心算法.分治算法.
- [转] Vue + Webpack 组件式开发(练习环境)
前言 研究了下别人的 vue 多页面框架, 都是直接复制 package.json 文件,然后在本地 npm install 一下即可, 或者使用官网 vue-cli 工具生成一个项目, 觉得这样虽然 ...
- 数据库链接池c3p0的配置
由于我看的是远古教程,所以里面各种驱动jar包还有c3p0包都是远古版本,对于最新版本的jdbc已经失去的作用,所以我在这里重写一下! 1.首先是c3p0的位置,package的外面,src的里面 2 ...
- html 转 PDF wkhtmltopdf image 不能显示的问题
把src的路径修改为本地路径 就可以,如 <img src="file:///C:\a.jpg">
- James Munkres Topology: Sec 18 Exer 12
Theorem 18.4 in James Munkres “Topology” states that if a function \(f : A \rightarrow X \times Y\) ...
- 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)
如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...
- 【Java】 剑指offer(30) 包含min函数的栈
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min ...