使用spring boot中的JPA操作数据库
2019-12-30 23:28
1721 查看
前言
Spring boot中的JPA 使用的同学都会感觉到他的强大,简直就是神器一般,通俗的说,根本不需要你写sql,这就帮你节省了很多时间,那么下面我们来一起来体验下这款神器吧。
一、在pom中添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.6</version> </dependency>
二、项目配置
在application.yml中填写数据库及JPA相关配置信息(这样在dev和prod两个环境是可以共用的),示例如下:
# 多环境配置 spring: profiles: active: prod # 通用数据源配置 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/student_info?serverTimezone=GMT%2B8 username: root password: root hikari: maximum-pool-size: 20 minimum-idle: 5 # JPA相关配置 jpa: hibernate: ddl-auto: create show-sql: true
说明:接口调试时,jpa中的ddl-auto:要改为update,否则每次运行都会清空数据哦!
编写好项目配置后,这里我们可以启动项目,会报错如下:
这是因为我没创建这个库引起的,那么我们先把这个库创建起来,接着我们重新启动项目就不会报错了,还帮我们显示出了创建sql语句,是不是很赞呢,哈哈
三、 数据库的操作
前面的项目基本搭建完成,下面我们通过增删改查的一系列操作,来完成数据库的操作。
1、创建一个实体
创建一个名为Student的类,示例如下:
package com.rongrong.springboot.demo.student; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; /** * @author rongrong * @version 1.0 * @description: * @date 2019/12/30 21:24 */ @Entity public class Student { //主键ID @Id //自增型 @GeneratedValue private Integer id; private String name; private Integer age; private String sex; private String email; }
2、数据库操作逻辑编写
创建一个名为StudentResponstory的接口,继承JPAResponstory,示例如下:
package com.rongrong.springboot.demo.student; import org.springframework.data.jpa.repository.JpaRepository; /** * @author rongrong * @version 1.0 * @description: * @date 2019/12/30 22:20 */ public interface StudentResponstory extends JpaRepository<Student,Integer> { }
创建一个名为StudentController的类,通过增删改查操作,来实现库的操作逻辑,具体示例代码如下:
package com.rongrong.springboot.demo.student; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @author rongrong * @version 1.0 * @description: * @date 2019/12/30 20:40 */ @RestController public class StudentController { @Autowired StudentResponstory studentResponstory; /** * 查询所有学生列表 * * @return */ @GetMapping("/students") public List<Student> sudentFindAll() { return studentResponstory.findAll(); } /** * 新增一个学生 * * @param name * @param age * @param sex * @param email * @return */ @PostMapping("/studentAdd") public Student sudentAdd(@RequestParam("name") String name, @RequestParam("age") Integer age, @RequestParam("sex") String sex, @RequestParam("email") String email) { Student student = new Student(); student.setName(name); student.setAge(age); student.setSex(sex); student.setEmail(email); //保存和更新都用该方法 return studentResponstory.save(student); } /** * 通过iD查找一个学生 * * @param id * @return */ @GetMapping("/sudentFindOne/{id}") public Student sudentFindOne(@PathVariable("id") Integer id) { return studentResponstory.findOne(id); } /** * 通过ID更新一个学生信息 * * @param id * @param name * @param age * @param sex * @param email * @return */ @PutMapping("/sudentUpdate/{id}") public Student sudentUpdate(@PathVariable("id") Integer id, @RequestParam("name") String name, @RequestParam("age") Integer age, @RequestParam("sex") String sex, @RequestParam("email") String email) { Student student = new Student(); student.setId(id); student.setName(name); student.setAge(age); student.setSex(sex); student.setEmail(email); //保存和更新都用该方法 return studentResponstory.save(student); } /** * 通过ID删除一个学生 * * @param id */ @DeleteMapping("/sudentDelete/{id}") public void sudentDelete(@PathVariable("id") Integer id) { studentResponstory.delete(id); } /** * 通过年龄查询学生 * * @param age * @return */ @GetMapping("/sudentFindByAge/{age}") public List<Student> sudentFindByAge(@PathVariable("age") Integer age) { return studentResponstory.findByAge(age); } }
通过年龄查询学生查询时,需要在接口中添加如下方法:
package com.rongrong.springboot.demo.student; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; /** * @author rongrong * @version 1.0 * @description: * @date 2019/12/30 22:20 */ public interface StudentResponstory extends JpaRepository<Student,Integer> { List<Student> findByAge(Integer age); }
再次启动项目,通过postman进行逐一测试,即可。
项目启动效果图
postman效果图
到此,spring boot中jpa的使用介绍完,有兴趣的同学可以自行尝试。
相关文章推荐
- SpringBoot学习之路:03.Spring Boot使用Jpa操作数据库
- SpringBoot入门(三)--数据库操作&&Spring-data-jpa的使用
- SpringBoot项目 使用Sprin Data Jpa 实现数据库的 增 ,删, 改, 查操作
- Spring boot 使用Jpa操作数据库
- 在spring Boot中使用Spring-data-jpa操作数据库
- SpringBoot中Controller以及Jpa操作数据库的使用
- 在spring Boot中使用Spring-data-jpa操作数据库
- SpringBoot使用JPA操作数据库
- 问题7:当使用jpa操作数据库的时候,插入数据到数据库使用主键自增策略时候报错:Springboot-jpa Table 'sell.hibernate_sequence' doesn't exist
- • Spring Boot 进 阶- 数 据 访 问-使用spring-data-jpa 操作数据库
- SpringBoot 使用JPA操作数据库
- SpringBoot中连接MYSQL数据库,并使用JPA进行数据库的相关操作
- SpringBoot项目 使用Sprin Data Jpa 操作数据库
- 在spring Boot中使用Spring-data-jpa操作数据库
- SpringBoot中连接MYSQL数据库,并使用JPA进行数据库的相关操作
- 三、springboot项目的简单使用之:JPA使用操作数据库
- SpringBoot-创建RESTful风格的 http接口访问jpa 来操作数据库
- SpringBoot学习(五)操作数据库Spring-Data-JPA
- Spring boot中使用Spring-data-jpa方便快捷的访问数据库(推荐)
- SpringBoot intercept拦截器中获取JPA数据库操作实例