花了几天时间,好好看了看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的更多相关文章

  1. SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二

    SpringBoot 使用JPA+MySQL+Thymeleaf 总结 一 SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二 方法一 使用原生sql查询 或者 为方法名增加 ...

  2. SpringBoot数据访问(二) SpringBoot整合JPA

    JPA简介 Spring Data JPA是Spring Data大家族的一部分,它可以轻松实现基于JPA的存储库.该模块用于增强支持基于JPA的数据访问层,它使我们可以更加容易地构建使用数据访问技术 ...

  3. 带你搭一个SpringBoot+SpringData JPA的环境

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 不知道大家对SpringBoot和Spring Da ...

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

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

  5. SpringBoot 使用JPA+MySQL+Thymeleaf 总结 一

    SpringBoot 使用JPA+MySQL+Thymeleaf 总结 一 SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二 pom引用 <?xml version=& ...

  6. springboot支付项目之springboot集成jpa

    springboot集成spring-jpa 本文主要内容: 1:spring boot怎么集成spring-jpa以及第一个jpa查询示例 如jpa几个常用注解.lombok注解使用 2:怎么设置i ...

  7. Springboot+Atomikos+Jpa+Mysql实现JTA分布式事务

    1 前言 之前整理了一个spring+jotm实现的分布式事务实现,但是听说spring3.X后不再支持jotm了,jotm也有好几年没更新了,所以今天整理springboot+Atomikos+jp ...

  8. 【极简版】SpringBoot+SpringData JPA 管理系统

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 在上一篇中已经讲解了如何从零搭建一个SpringBo ...

  9. Springboot+MyBatis+JPA集成

      1.前言 Springboot最近可谓是非常的火,本人也在项目中尝到了甜头.之前一直使用Springboot+JPA,用了一段时间发现JPA不是太灵活,也有可能是我不精通JPA,总之为了多学学Sp ...

随机推荐

  1. Django部署方法

    Windows方案: Apache2.4 + Django2.0 网上的方法乱七八糟: 那么接下来:最好的方法,不行吃屎. 当前环境是Django2.0+ python35(64bit) 部署原因: ...

  2. 【ARTS】01_21_左耳听风-201900401~201900407

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  3. JDBC连接MariaDB:数据传输加密

    环境:win7+springboot+mybatis+mariadb 需求说明: 未做安全加固前用wireshark抓包: 可以很明显看到用户名.数据库和 SQL,这种情况是有安全风险的. 1.下载o ...

  4. SVN 版本控制安装

    客户端 一路点击next即可 注意事项: 这个一定要选,否则后面使用会出现问题. 选择下拉菜单的第一项

  5. 大一上c语言学习总结

    一: 近期C语言知识点易错点整理(1)main()----在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略 ...

  6. Pylon5 SDK搭配OpenCV使用入门

    本文假设已经安装了Basler官网提供的Pylon 目前最新的版本是5.0.5,如果上述链接打不开,请直接所有Basler官网下载,需要注意的是在安装Pylon5时要选择Developer模式,这样才 ...

  7. Angular路由——辅助路由

    一.辅助路由语法 同时控制多个插座内容. 第一步: 模版上除了主插座,还需要声明一个带name属性的插座 第二步: 路由配置中配置name为aux的插座上可以显示哪些组件,比如显示xxx和yyy组件. ...

  8. Hadoop 设置任务执行的队列以及优先级

    转自:http://blog.csdn.net/wisgood/article/details/39075883 作业提交到的队列:mapreduce.job.queuename 作业优先级:mapr ...

  9. BigDecimal类型转换

    djjfbr.setMoney(new BigDecimal(djjfbillrecord.getMoney()));

  10. Terraria(泰拉瑞亚)存档覆盖(Linux)

    这是一篇关于游戏的不正经博客 ~ 游戏介绍: <泰拉瑞亚>是由Re-Logic公司开发的一款高自由度的沙盒游戏,于2011年5月16日在PC上发行. 玩家可以在游戏中做很多事情:制造武器战 ...