一、JPA简介

JPA(java persistence api)并不是一个框架,而是一组规范。Hibernate、TopLink、OpenJPA都实现了JPA规范,不过Hinernate最成功)。所以当说到JPA的时候,好多人首先想到的就是Hibernate。

二、SpringBoot 整合 JPA

1、创建工程并添加依赖

2、在application.yml文件中进行配置

spring:devtools:restart:enabled: falsedatasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/testhikari: # springboot 2.0 整合了hikari ,据说这是目前性能最好的java数据库连接池username: rootpassword: 123jpa:hibernate:# 更新或创建数据库表结构ddl-auto: update  # 第一次建表create  后面用update,要不然每次重启都会新建表# 输出执行sqlshow-sql: true

3、创建一个entity

package com.space.jpa.bean;import lombok.Data;import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;/*** @author zhuzhe* @date 2018/6/3 23:27* @email 1529949535@qq.com*/
@Data
@Entity  // 该注解声明一个实体类,与数据库中的表对应
public class User {@Id   // 表明id,声明为该表主键@GeneratedValue   //  自动生成,主键自增策略private Long id ;private String name ;//getter & setter 方法略
}

4、创建DAO

编写Dao接口来操作实体类对应的数据表(Repository)来操作实体类对应的数据表(Repository)

package com.space.jpa.dao;import com.space.jpa.bean.User;
import org.springframework.data.jpa.repository.JpaRepository;/*** @author zhuzhe* @date 2018/6/3 23:32* @email 1529949535@qq.com*/
@Component
//继承JpaRepository来完成对数据库的操作
public interface UserDAO extends JpaRepository<User,Long> {/** 我们在这里直接继承 JpaRepository* 这里面已经有很多现场的方法了* 这也是JPA的一大优点** */
}

在这里我直接截图,我们可以看看JpaRepository中的一些方法,可以直接使用这些方法,包括其父类的好多方法

5、Service

package com.space.jpa.service;import com.space.jpa.bean.User;import java.util.List;
/*** @author zhuzhe* @date 2018/6/3 23:38* @email 1529949535@qq.com*/
public interface UserService {List<User> findAll();
}
package com.space.jpa.service.impl;import com.space.jpa.bean.User;
import com.space.jpa.dao.UserDAO;
import com.space.jpa.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;/*** @author zhuzhe* @date 2018/6/3 23:38* @email 1529949535@qq.com*/
@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserDAO userDAO;@Overridepublic List<User> findAll() {// 这里我们就可以直接使用 findAll 方法return userDAO.findAll();}
}

6、Controller

package com.space.jpa.controller;import com.space.jpa.bean.User;
import com.space.jpa.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** @author zhuzhe* @date 2018/6/3 23:43* @email 1529949535@qq.com*/
@RestController
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/list")public List<User> findAll() {return userService.findAll();}
}

7、进行测试

我们启动项目,可以看到日志打印

数据表会自动创建,此时我们查看数据库

确实已经自动创建了数据表。

我们给表里添加两条数据,然后通过浏览器访问findAll接口:

得到结果如下:

这样,我们就整合完成了。是不是 So Easy!!!

源码:https://github.com/zhuzhegithub/springboot-jpa

(二)SpringBoot 整合 JPA相关推荐

  1. springboot整合JPA+MYSQL+queryDSL数据增删改查

    Spring Boot Jpa 是 Spring 基于 ORM 框架.Jpa 规范的基础上封装的一套 Jpa 应用框架,可使开发者用极简的代码即可实现对数据的访问和操作.它提供了包括增删改查等在内的常 ...

  2. Springboot整合JPA多数据源(Oracle+Mysql)

    Springboot整合JPA多数据源 1. Maven 2. 基本配置 2.1 DataSource 3. 多数据源配置 3.1 JpaConfigOracle 3.2 JpaConfigMysql ...

  3. Springboot整合JPA

    文章目录 JPA技术 常用注解 Springboot整合JPA 1.引入JPA依赖 2.配置 3.启动类 4.实体类 5.定义接口和数据库交互(dao) 6.JPA中使用原生态的SQL语句 7.Tes ...

  4. springboot篇】二十二. springboot整合Redis集群

    springboot整合Redis集群 **中国加油,武汉加油!** 案例准备 1. 新建Springboot项目springboot-redis-sentinel 2. 编写yml 3. Test ...

  5. springboot整合jpa+h2

    JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. JPA的主要目标之一 ...

  6. java版spring cloud+spring boot+redis社交电子商务平台(四)SpringBoot 整合JPA

    java b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行 ...

  7. java版电子商务spring cloud分布式微服务b2b2c社交电商(四)SpringBoot 整合JPA

    b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对 ...

  8. SpringBoot整合JPA 数据库自动增加字段问题记录

    Spring整合JPA启动的时候忽然发现,数据增加了两个字段,我当时就很纳闷了,我自己写的有实体有字段,并且跟数据一致,为什么要给我增加两个字段哪? 我的实体如下: 启动的时候就变成这样了 然后就找度 ...

  9. 【idea】Springboot整合jpa

    第一步快速搭建springboot项目:在你建立的工程下创建 Module 选择Spring initializr创建. 第二步:修改包名.项目名.web项目打成war包.在Type处选择: Mave ...

最新文章

  1. Python_note9 Matplotlib画图 Seaborn画图
  2. 创业星光论坛(上):汇源是否应在万荣建厂
  3. hdu2067 简单dp或者记忆化搜索
  4. SAP应用有可能改造成Serverless架构么?
  5. 『数据库』朴实无华的数据库绪论
  6. 用三元操作符替代if-else以降低CPU分支预测惩罚实现Unity内函数13倍提速
  7. UDS诊断基础知识简介-ISO14229
  8. python平方的代码怎么写,Python编程之求数字平方代码实例
  9. excel超链接无法打开服务器文件,excle链接的未打开 | excel超链接打不开,超链接后点击出现无法打开指定的文件,求高手解决...
  10. 飞塔防火墙之Link Monitor
  11. Lombok 的作者,成功讨伐 IntelliJ IDEA!
  12. 规格说明书-吉林市2日游
  13. 跨国传输大数据,如何高效又安全?
  14. Qt可视化大屏电子看板系统源码
  15. 【游戏面包屑】开发类职业攻略1.0
  16. Mono入门教程(一)--------------C++中整合Mono
  17. Azure Kinect 安装使用
  18. vue input判断值是扫码枪还是键盘输入
  19. 【七】Python全栈之路--字符串_列表相关操作
  20. 手把手教学爬小姐姐图片(jsoup)

热门文章

  1. 结对开发——环形一维数组求最大子数组和
  2. Hadoop从0开始 (安装配置:转) (一) - 沐魇
  3. NHibernate 3.0在PetShop 3层架构中的应用 系列
  4. 春运男子持刀强行劫走17张卧铺票 ....
  5. Dom4j使用Xpath语法读取xml节点
  6. Spring+SpringMVC+Mybatis框架集成搭建教程
  7. Tomcat无法shutdown进程问题解决办法
  8. linux 酷炫的命令行
  9. 重谈ExtGrid 扩展行自动展开(一)(expanded row 默认展开)
  10. 你知道JVM内存的那些事吗?