本文介绍使用 jpa 对数据库进行增删改查。
我们使用 mysql 数据库,使用 jpa 规范操作
使用 Maven 管理依赖,添加以上两个后,重新 install Maven,然后 Reimport
1、JPA 介绍
2、RESTful API 设计
1、实体类 User
注意:每个属性对应数据表中的一个字段(不需要建表),
其中主键的需要加 @Id 和@GeneratedValue 两个注解
实体类前需要加 @Entity
请确保导入的类没有导错。
2、UserController.java
3、UserRepository.java
注意:如果我们想添加其他的方法,可以在 UserRepository里写抽象方法,但是命名规范一定要注意。
4、application.yml
四、使用Postman工具测试
我们可以使用 Postman 根据来发起 HTTP 请求,就不需要自己写表单验证了。
比如 添加一个用户
获得用户列表
删除一个用户
最后,发现 JPA 是不是用起来很爽呢?赶快来试试吧
一、导入依赖
我们使用 mysql 数据库,使用 jpa 规范操作
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-jpa</artifactId>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- </dependency>
使用 Maven 管理依赖,添加以上两个后,重新 install Maven,然后 Reimport
二、Spring-Data-Jpa 介绍和 RESTful API 设计
1、JPA 介绍
2、RESTful API 设计
请求类型 | 请求路径 | 功能 |
GET | /users | 查询用户列表 |
POST | /users | 添加一个用户 |
GET | /users/id | 根据id查询用户 |
PUT | /users/id | 根据id修改用户 |
DELETE | /users/id | 根据id删除用户 |
三、具体代码
1、实体类 User
- package com.liuyanzhao.blog;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.Id;
- @Entity
- public class User {
- @Id
- @GeneratedValue
- private Integer id;
- private String name;
- private String gender;
- private Integer age;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getGender() {
- return gender;
- }
- public void setGender(String gender) {
- this.gender = gender;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- }
注意:每个属性对应数据表中的一个字段(不需要建表),
其中主键的需要加 @Id 和@GeneratedValue 两个注解
实体类前需要加 @Entity
请确保导入的类没有导错。
2、UserController.java
- package com.liuyanzhao.blog;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.util.List;
- /**
- * @Author 言曌
- * @DATE 2017/10/29 上午10:33
- * @URL http://liuyanzhao.com
- */
- @RestController
- public class UserController {
- @Autowired
- private UserRepository userRepository;
- /**
- * 查询所有用户列表
- * @return
- */
- @GetMapping(value = "/users")
- public List<User> listUser() {
- return userRepository.findAll();
- }
- /**
- * 添加一个用户
- * @param name
- * @param gender
- * @param age
- * @return
- */
- @PostMapping(value = "/users")
- public User insertUser(@RequestParam("name") String name,
- @RequestParam("gender") String gender,
- @RequestParam("age") Integer age) {
- User user = new User();
- user.setName(name);
- user.setGender(gender);
- user.setAge(age);
- return userRepository.save(user);
- }
- /**
- * 查询一个用户
- * @param id
- * @return
- */
- @GetMapping(value = "/users/{id}")
- public User getUser(@PathVariable("id") Integer id) {
- return userRepository.findOne(id);
- }
- /**
- * 更新一个用户
- * @param id
- * @param name
- * @param gender
- * @param age
- * @return
- */
- @PutMapping(value = "/users/{id}")
- public User updateUser(@PathVariable("id") Integer id,
- @RequestParam("name") String name,
- @RequestParam("gender") String gender,
- @RequestParam("age") Integer age) {
- User user = new User();
- user.setId(id);
- user.setName(name);
- user.setGender(gender);
- user.setAge(age);
- return userRepository.save(user);
- }
- /**
- * 删除一个用户
- * @param id
- */
- @DeleteMapping(value = "/users/{id}")
- public void deleteUser(@PathVariable("id") Integer id) {
- userRepository.delete(id);
- }
- /**
- * 根据用户性别查询用户列表
- * @param gender
- * @return
- */
- @GetMapping(value = "/users/gender/{gender}")
- public List<User> listUserByGender(@PathVariable("gender") String gender) {
- return userRepository.findByGender(gender);
- }
- }
3、UserRepository.java
- package com.liuyanzhao.blog;
- import org.springframework.data.jpa.repository.JpaRepository;
- import java.util.List;
- /**
- * @Author 言曌
- * @DATE 2017/10/29 上午10:35
- * @URL http://liuyanzhao.com
- */
- public interface UserRepository extends JpaRepository<User,Integer>{//表名和Id类型
- //根据性别来查询用户
- public List<User> findByGender(String gender);
- }
注意:如果我们想添加其他的方法,可以在 UserRepository里写抽象方法,但是命名规范一定要注意。
4、application.yml
- spring:
- datasource:
- driver-class-name: com.mysql.jdbc.Driver
- url: jdbc:mysql://localhost:3306/springboot
- username: root
- password: 123456
- jpa:
- hibernate:
- ddl-auto: update
- show-sql: true
四、使用Postman工具测试
我们可以使用 Postman 根据来发起 HTTP 请求,就不需要自己写表单验证了。
比如 添加一个用户
获得用户列表
删除一个用户
最后,发现 JPA 是不是用起来很爽呢?赶快来试试吧
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏