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的更多相关文章

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

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

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

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

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

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

  4. 二、springboot使用jpa

    花了几天时间,好好看了看springboot的jpa部分,总结了常用的形式. 1.通过STS工具添加jpa的依赖项 要连mysql,测试的时候需要web,顺便添加了lombok不写set和get方法了 ...

  5. Springboot+MyBatis+JPA集成

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

  6. 第11章—使用对象关系映射持久化数据—SpringBoot+SpringData+Jpa进行查询修改数据库

    SpringBoot+SpringData+Jpa进行查询修改数据库 JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分.但它又不限于EJB 3.0,你可以在Web应用.甚至桌面应用 ...

  7. 集成Springboot+MyBatis+JPA

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

  8. SpringBoot Data JPA 关联表查询的方法

    SpringBoot Data JPA实现 一对多.多对一关联表查询 开发环境 IDEA 2017.1 Java1.8 SpringBoot 2.0 MySQL 5.X 功能需求 通过关联关系查询商店 ...

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

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

  10. springboot使用Jpa连接数据库

    springboot使用Jpa连接数据库 1.pom.xml: <?xml version="1.0" encoding="UTF-8"?> < ...

随机推荐

  1. java高级——反射

    慕课网<反射——Java高级开发必须懂的>听课笔记 一.class类的使用 class ClassDemo { public static void main(String[] args) ...

  2. lqb 入门训练 序列求和 (PS:用长整数做数据的输入输出)

    入门训练 序列求和 时间限制:1.0s   内存限制:256.0MB     问题描述 求1+2+3+...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3 ...

  3. pat 1023 Have Fun with Numbers(20 分)

    1023 Have Fun with Numbers(20 分) Notice that the number 123456789 is a 9-digit number consisting exa ...

  4. nyoj 67-三角形面积 (海伦公式, 叉积)

    67-三角形面积 内存限制:64MB 时间限制:3000ms 特判: No 通过数:8 提交数:13 难度:2 题目描述: 给你三个点,表示一个三角形的三个顶点,现你的任务是求出该三角形的面积 输入描 ...

  5. ThreadLocal深度解析和应用示例

    开篇明意 ThreadLocal是JDK包提供的线程本地变量,如果创建了ThreadLocal<T>变量,那么访问这个变量的每个线程都会有这个变量的一个副本,在实际多线程操作的时候,操作的 ...

  6. ZeroC ICE源代码中的那些事 - 嵌套类和局部类

    使用嵌套类(类中定义的类,c++没有静态类)或局部类(在函数或成员方法中定义的类),进行行为模式的委托(委托请求)或异步 . java中嵌套类和局部类隐式完成了你对外部对象(实例)访问的私有堆栈的初始 ...

  7. Bootstrap3中的affix的使用Demo

    <div class="container"> <div class="col-md-3"> <ul class="li ...

  8. Docker-Compose基础与实战,看这一篇就够了

    what & why Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器.然 ...

  9. Java关于Resource leak: 's' is never closed的问题

    Resource leak: 's' is never closed的问题 问题:在编写Java时出现了Resource leak: 's' is never closed的问题,也就是对象s下面的波 ...

  10. python 实现图片批量加入水印!pillow 入门实战!

    写文章的时候可以设置是否添加水印.可是,有些图片可能想加水印,有些不想加水印,该怎么办呢? 配置环境 python3 + pillow pip3 install pillow 引入库 from PIL ...