springboot项目开发过程参考(Spring Data JPA + Spring Data REST) 
依赖环境 
开发工具 
IDEA 
postman 测试后端接口 
vscode 
 
新建项目  
 
 
框架:Spring Data JPA + Spring Data REST 
Spring Data JPA,使开发者使用极简的代码实现对数据库的访问和操作。它提供了包括增删改查等在内的基本功能,且易于扩展。 
Spring Data REST,基于Spring Data的repository之上,可以把 repository 自动输出为REST资源,支持Spring Data JPA 
 
1.导入maven依赖 pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">     <modelVersion>4.0.0</modelVersion>     <parent>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-parent</artifactId>         <version>2.4.0</version>         <relativePath/> <!-- lookup parent from repository -->     </parent>     <groupId>com.example</groupId>     <artifactId>demo</artifactId>     <version>0.0.1-SNAPSHOT</version>     <name>demo</name>     <description>Demo project for Spring Boot</description>     <properties>         <java.version>1.8</java.version>     </properties>     <dependencies>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-data-jpa</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-web</artifactId>         </dependency>         <!--Spring Data REST-->         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-data-rest</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.data</groupId>             <artifactId>spring-data-rest-webmvc</artifactId>             <version>3.3.0.RELEASE</version>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-devtools</artifactId>             <scope>runtime</scope>             <optional>true</optional>         </dependency>         <dependency>             <groupId>mysql</groupId>             <artifactId>mysql-connector-java</artifactId>             <scope>runtime</scope>         </dependency>         <dependency>             <groupId>org.projectlombok</groupId>             <artifactId>lombok</artifactId>             <optional>true</optional>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-test</artifactId>             <scope>test</scope>         </dependency>     </dependencies>     <build>         <plugins>             <plugin>                 <groupId>org.springframework.boot</groupId>                 <artifactId>spring-boot-maven-plugin</artifactId>                 <version>2.4.0</version>                 <configuration>                     <includeSystemScope>true</includeSystemScope>                 </configuration>             </plugin>         </plugins>     </build> </project> 
 
2.properties文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #restful spring.data.rest.base-path=/db server.port=18888 #达梦 #spring.datasource.url=jdbc:dm://localhost:5236?schema=DEMOSTORE #spring.datasource.username=SYSDBA #spring.datasource.password=12345qwert #spring.datasource.driver-class-name=dm.jdbc.driver.DmDriver #spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.DmDialect #spring.jpa.hibernate.ddl-auto=update #spring.jpa.show-sql=true #mysql #com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/demojava?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false spring.datasource.username=root spring.datasource.password=123qwe #spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.DmDialect spring.jpa.hibernate.ddl-auto=update #spring.jpa.hibernate.ddl-auto=create spring.jpa.show-sql=true 
 
3.entity 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package com.example.demo.entity; import lombok.Data; import javax.persistence.*; @Entity  //jpa实体类标识 @Data    //LomBok插件,省略get set //@Table(name = "SysUser") // 指定数据库的表名 public class SysUser {     @Id  //主键     private Integer userId;     private String userName;     private String userType;     private String password; } 
 
4.repository 1 2 3 4 5 6 7 8 9 10 11 package com.example.demo.repository; import com.example.demo.entity.SysUser; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository // 相当于UserDao // 将UserRepository继承JpaRepository就可以有对应的增删改查方法 public interface UserRepository extends JpaRepository<SysUser,Integer>{ } 
 
不需要通过controller,即可使用postman查看接口
 
 
5.添加查询方法 
6.service 主要有两个作用
7.controller 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 package com.example.demo.controller; import com.example.demo.entity.SysUser; import com.example.demo.repository.UserRepository; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.List; import java.util.Map; @CrossOrigin @RestController @RequestMapping("/define") public class UserController {     @Autowired     UserRepository userRepository;     @Autowired     UserService userService;     @RequestMapping("/login")     public ResponseEntity<Map> login(Integer userId, String password) {         Map map = new HashMap<>();         SysUser sysUser = userRepository.findByUserIdAndPassword(userId, password);         map.put("code", "200");         map.put("message", "success");         map.put("user", sysUser);         return new ResponseEntity<Map>(map, HttpStatus.OK);     }     @RequestMapping("/login2")     public ResponseEntity<Map> login2(Integer userId, String password) {         Map map = new HashMap<>();         SysUser sysUser = userService.findUserOrNot(userId, password);         map.put("code", "200");         map.put("message", "success");         map.put("user", sysUser);         return new ResponseEntity<Map>(map, HttpStatus.OK);     } } 
 
1 直接访问repository  1 http://localhost:18888/define/login?userId=1&password=123 
 
2 访问service  1 http://localhost:18888/define/login2?userId=1&password=123 
 
 
 
8.学习链接 Spring Data Jpa的使用:https://www.jianshu.com/p/c23c82a8fcfc