花了几天时间,好好看了看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. Android的路接下来该怎么走?

    其实想写这篇文章好久了,很多小伙伴们也经常在群里探讨android移动开发者的走向,一部分人都想多快好省,间歇性踌躇满志.持续性混吃等死 ,只想用CV的开发模式们快速完成工作,然后回家王者农药.其实这 ...

  2. 记录一下,PC端vue开发常用框架,已经用过elementUI和iview 接下来尝试另一个Muse-UI 喜欢它的点击效果

    官网地址: https://muse-ui.org/#/zh-CN/installation

  3. 如何给PDF设置全屏动画

    PPT文件可以播放全屏,并且可以实现飞入.分割.闪烁等动画模式播放.那么PDF文件可以吗?我们想要给PDF文件加入动画效果应该怎么做呢,也有很多的小伙伴不知道该怎么把PDF文件切换为全屏动画模式想要知 ...

  4. vs2010编译error_code

    C1083 : 现象: xxxxx.cpp clxx:fatal error C1083:无法打开源文件: “..\..\..\..\src\folder1\folder2\folder3\folde ...

  5. 备份还原数据数据库(动态IP版)

    使用方法: 1.首次使用双击export.bat进行备份数据库:2.以后每次使用双击setup.bat进行还原数据库: 备注:如果数据库内容有变,需要重新执行export.bat进行备份数据库. ex ...

  6. git用代码库文件完全覆盖本地/git不能提交jar的设置

    用代码库中的文件完全覆盖本地工作版本. 方法如下: git reset --hard git pull 操作后 本地该目录下所有修改都会被删除!!! 谨慎操作! 项目目录下 文件:.gitignore ...

  7. LLDB 中从地址设置为变量

    // set language and import framework settings set target.language swift expr -l Swift -- import UIKi ...

  8. Git 配置用户名、密码

    在终端输入: git config --global credential.helper store 然后git pull一次,输入一次用户名密码就会自动保存该用户名密码: 查看配置的用户信息: gi ...

  9. 问题集 & 知识点

    芝士 [事件绑定的三种方法] 在以类继承的方式定义的组件中,为了能方便地调用当前组件的其他成员方法或属性(如:this.state),通常需要将事件处理函数运行时的 this 指向当前组件实例. 绑定 ...

  10. django模板中获取域名地址

    获取域名: {{ request.get_host }} 获取路径:{{ request.path }} 获取协议 {{ request.scheme }}