(二)SpringBoot 整合 JPA
一、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相关推荐
- springboot整合JPA+MYSQL+queryDSL数据增删改查
Spring Boot Jpa 是 Spring 基于 ORM 框架.Jpa 规范的基础上封装的一套 Jpa 应用框架,可使开发者用极简的代码即可实现对数据的访问和操作.它提供了包括增删改查等在内的常 ...
- Springboot整合JPA多数据源(Oracle+Mysql)
Springboot整合JPA多数据源 1. Maven 2. 基本配置 2.1 DataSource 3. 多数据源配置 3.1 JpaConfigOracle 3.2 JpaConfigMysql ...
- Springboot整合JPA
文章目录 JPA技术 常用注解 Springboot整合JPA 1.引入JPA依赖 2.配置 3.启动类 4.实体类 5.定义接口和数据库交互(dao) 6.JPA中使用原生态的SQL语句 7.Tes ...
- springboot篇】二十二. springboot整合Redis集群
springboot整合Redis集群 **中国加油,武汉加油!** 案例准备 1. 新建Springboot项目springboot-redis-sentinel 2. 编写yml 3. Test ...
- springboot整合jpa+h2
JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. JPA的主要目标之一 ...
- java版spring cloud+spring boot+redis社交电子商务平台(四)SpringBoot 整合JPA
java b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行 ...
- java版电子商务spring cloud分布式微服务b2b2c社交电商(四)SpringBoot 整合JPA
b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对 ...
- SpringBoot整合JPA 数据库自动增加字段问题记录
Spring整合JPA启动的时候忽然发现,数据增加了两个字段,我当时就很纳闷了,我自己写的有实体有字段,并且跟数据一致,为什么要给我增加两个字段哪? 我的实体如下: 启动的时候就变成这样了 然后就找度 ...
- 【idea】Springboot整合jpa
第一步快速搭建springboot项目:在你建立的工程下创建 Module 选择Spring initializr创建. 第二步:修改包名.项目名.web项目打成war包.在Type处选择: Mave ...
最新文章
- Python_note9 Matplotlib画图 Seaborn画图
- 创业星光论坛(上):汇源是否应在万荣建厂
- hdu2067 简单dp或者记忆化搜索
- SAP应用有可能改造成Serverless架构么?
- 『数据库』朴实无华的数据库绪论
- 用三元操作符替代if-else以降低CPU分支预测惩罚实现Unity内函数13倍提速
- UDS诊断基础知识简介-ISO14229
- python平方的代码怎么写,Python编程之求数字平方代码实例
- excel超链接无法打开服务器文件,excle链接的未打开 | excel超链接打不开,超链接后点击出现无法打开指定的文件,求高手解决...
- 飞塔防火墙之Link Monitor
- Lombok 的作者,成功讨伐 IntelliJ IDEA!
- 规格说明书-吉林市2日游
- 跨国传输大数据,如何高效又安全?
- Qt可视化大屏电子看板系统源码
- 【游戏面包屑】开发类职业攻略1.0
- Mono入门教程(一)--------------C++中整合Mono
- Azure Kinect 安装使用
- vue input判断值是扫码枪还是键盘输入
- 【七】Python全栈之路--字符串_列表相关操作
- 手把手教学爬小姐姐图片(jsoup)
热门文章
- 结对开发——环形一维数组求最大子数组和
- Hadoop从0开始 (安装配置:转) (一) - 沐魇
- NHibernate 3.0在PetShop 3层架构中的应用 系列
- 春运男子持刀强行劫走17张卧铺票 ....
- Dom4j使用Xpath语法读取xml节点
- Spring+SpringMVC+Mybatis框架集成搭建教程
- Tomcat无法shutdown进程问题解决办法
- linux 酷炫的命令行
- 重谈ExtGrid 扩展行自动展开(一)(expanded row 默认展开)
- 你知道JVM内存的那些事吗?