SpringBoot与JPA
JPA是什么
JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
JPA可以极大的简化JPA的写法,可以爱几乎不用写实现的情况下,实现对数据库的访问操作。除了CRUD外,还包括分页,排序等一些常用的功能,
首先我们需要清除的是Spring data是一个开源框架,在这个框架中Spring Data JPA只是这个框架中的一个模块,所以名称才叫Spring Data JPA。如果单独使用JPA开发,你会发现这个代码量和使用JDBC开发一样有点烦人,所以Spring Data JPA的出现就是为了简化JPA的写法,让你只需要编写一个接口继承一个类就能实现CRUD操作了。
JPA实现数据库增删改查
步骤一:导入依赖
<!-- 引入mysql需要的依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 引入spring data jpa需要的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
步骤二:application.properties文件
#Spring Data JPA配置
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jackson.serialization.indent-output=true
spring.jpa.database=mysql
步骤三:创建实体类
package com.wn.springbootproject01.entity; import javax.persistence.*; @Entity
@Table(name = "Grade")
public class Grade { @Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer grade_id; private String grade_name; public Grade(Integer grade_id, String grade_name) {
this.grade_id = grade_id;
this.grade_name = grade_name;
} public Grade(){ } public Integer getGrade_id() {
return grade_id;
} public void setGrade_id(Integer grade_id) {
this.grade_id = grade_id;
} public String getGrade_name() {
return grade_name;
} public void setGrade_name(String grade_name) {
this.grade_name = grade_name;
}
}
步骤四:创建dao层
package com.wn.springbootproject01.dao; import com.wn.springbootproject01.entity.Grade;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository; @Repository
public interface GradeDao extends CrudRepository<Grade,Integer> {
}
步骤五:创建service接口层
package com.wn.springbootproject01.service;
import com.wn.springbootproject01.entity.Grade;
public interface GradeService {
//新增
public Grade getinter(Grade grade);
//修改
public Grade getupdate(Grade grade);
//删除
public void getdel(Integer id);
//查询
public Iterable<Grade> getAll();
}
步骤六:创建serviceImpl实现层
package com.wn.springbootproject01.service.impl; import com.wn.springbootproject01.dao.GradeDao;
import com.wn.springbootproject01.entity.Grade;
import com.wn.springbootproject01.service.GradeService;
import org.springframework.stereotype.Service; import javax.annotation.Resource; @Service
public class GradeServiceImpl implements GradeService { @Resource
private GradeDao dao; @Override
public Grade getinter(Grade grade) {
return dao.save(grade);
} @Override
public Grade getupdate(Grade grade) {
return dao.save(grade);
} @Override
public void getdel(Integer id) {
dao.deleteById(id);
} @Override
public Iterable<Grade> getAll() {
return dao.findAll();
}
}
步骤七:创建controller层
package com.wn.springbootproject01.controller; import com.wn.springbootproject01.entity.Grade;
import com.wn.springbootproject01.service.GradeService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; @Controller
@RequestMapping("/grade")
public class GradeController { //植入dao层对象
@Resource
private GradeService service; //新增
@RequestMapping("/getinter")
@ResponseBody
public Grade getinter(){
Grade grade=new Grade();
grade.setGrade_name("小明");
return service.getinter(grade);
} //修改
@RequestMapping("/getupdate")
@ResponseBody
public Grade getupdate(){
Grade grade=new Grade();
grade.setGrade_id();
grade.setGrade_name("小红");
return service.getupdate(grade);
} //删除
@RequestMapping("/getdel")
@ResponseBody
public String getdel(){
service.getdel();
return "success";
} //查询
@RequestMapping("/getAll")
@ResponseBody
public Iterable<Grade> getAll(){
return service.getAll();
} }
步骤八:实现结果
新增:


修改:


删除:


查询:

SpringBoot与JPA的更多相关文章
- 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+SpringData JPA的环境
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 不知道大家对SpringBoot和Spring Da ...
- 二、springboot使用jpa
花了几天时间,好好看了看springboot的jpa部分,总结了常用的形式. 1.通过STS工具添加jpa的依赖项 要连mysql,测试的时候需要web,顺便添加了lombok不写set和get方法了 ...
- Springboot+MyBatis+JPA集成
1.前言 Springboot最近可谓是非常的火,本人也在项目中尝到了甜头.之前一直使用Springboot+JPA,用了一段时间发现JPA不是太灵活,也有可能是我不精通JPA,总之为了多学学Sp ...
- 第11章—使用对象关系映射持久化数据—SpringBoot+SpringData+Jpa进行查询修改数据库
SpringBoot+SpringData+Jpa进行查询修改数据库 JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分.但它又不限于EJB 3.0,你可以在Web应用.甚至桌面应用 ...
- 集成Springboot+MyBatis+JPA
1.前言 Springboot最近可谓是非常的火,本人也在项目中尝到了甜头.之前一直使用Springboot+JPA,用了一段时间发现JPA不是太灵活,也有可能是我不精通JPA,总之为了多学学Spri ...
- SpringBoot Data JPA 关联表查询的方法
SpringBoot Data JPA实现 一对多.多对一关联表查询 开发环境 IDEA 2017.1 Java1.8 SpringBoot 2.0 MySQL 5.X 功能需求 通过关联关系查询商店 ...
- 用SpringBoot+MySql+JPA实现对数据库的增删改查和分页
使用SpringBoot+Mysql+JPA实现对数据库的增删改查和分页 JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述 ...
- springboot使用Jpa连接数据库
springboot使用Jpa连接数据库 1.pom.xml: <?xml version="1.0" encoding="UTF-8"?> < ...
随机推荐
- python经典算法题:无重复字符的最长子串
题目:无重复字符的最长子串. 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子 ...
- js的split()和join()的用法
split() 方法用于把一个字符串分割成字符串数组.split[splɪt]:vt. 分离:使分离:劈开:离开:分解 stringObject.split(separator,howmany) se ...
- zabbix4.0开源监控部署
---恢复内容开始--- 1.安装依赖环境 yum -y install telnet net-tools python-paramiko dejavu-sans-fonts python-setup ...
- 【SpringBoot | Redis】SpringBoot整合Redis
SpringBoot整合Redis 1. pom.xml中引入Redis相关包 请注意,这里我们排除了lettuce驱动,采用了jedis驱动 <!-- redis的依赖 --> < ...
- 领扣(LeetCode)数字转换为十六进制数 个人题解
给定一个整数,编写一个算法将这个数转换为十六进制数.对于负整数,我们通常使用 补码运算 方法. 注意: 十六进制中所有字母(a-f)都必须是小写. 十六进制字符串中不能包含多余的前导零.如果要转化的数 ...
- Code Runner for VS Code 突破 1000 万下载量!支持运行超过 40 种语言
记得三年多前,韩老师那时还在写 PHP(是的,没错!在微软写 PHP),同时需要写 Python 和 Node.js .所以在那时,支持多种语言的 VS Code 已经是笔者的主力编辑器了.唯一不足的 ...
- Win10专业版和企业版的区别
微软最新的Windows 10版本诸多,包括精简版(S).家庭版(Home).专业版(Pro).企业版(Enterprise),而论功能体验,Win10专业版和企业版无疑是最完善的.那么,Win10专 ...
- 获取单列集合,双列集合,数组的Stream流对象以及简单操作
获取流对象 获取单列集合,双列集合,数组的流对象 单列集合获取流对象: 1.java.util.Collection接口中加入了default方法stream()获取流对象,因此其所有实现类均可通过此 ...
- [FPGA]Verilog利用PWM调制巧妙完成RGB三色彩虹呼吸灯(给简约的题目以美妙的解答)
概述 实现彩虹呼吸灯 题目就是这么简短,但这是目前我碰到的最有意思的一道题目,因为他有无数种解决方法,并且每一种都是那么高级或者巧妙,比如 可以利用3路不同初相的PWM调制信号驱动三颗RGB灯重叠呼吸 ...
- webpack-dev-middleware 和 webpack-hot-middleware 配置开发环境和生产环境;webpack脚手架;仿vue-cli
webpack-dev-server更新后自带express服务器,已经不需要自己搭建.vue-cli从17年底左右也换成了最新的webpack-dev-server,而不是用webpack-dev- ...