1、创建springboot项目

2、pom.xml文件
java
<?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>3.3.9</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.maker</groupId>
<artifactId>mysql-jpa</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mysql-jpa</name>
<description>mysql-jpa</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<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>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</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.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
3、项目结构

4、application.properties
java
spring.application.name=mysql-jpa
# 服务器访问端口
server.port=8080
# 数据库基本配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/jpa-demo?useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database=MYSQL
# 显示后台处理的SQL语句
spring.jpa.show-sql=true
# 格式化 SQL 查询以便阅读
spring.jpa.properties.hibernate.format_sql=true
# 显示 SQL 参数绑定
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql=TRACE
# 显示 Hibernate 统计信息
logging.level.org.hibernate.stat=DEBUG
logging.level.org.hibernate=INFO
# 自动检查实体和数据库表是否一致,如果不一致则会进行更新数据库表
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
5、创建entity层
java
package com.maker.entity;
import jakarta.persistence.*;
import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
@Entity
@Data
@Table(name="user_info")
public class UserInfo implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
}
6、创建service层
java
package com.maker.service;
import com.maker.entity.UserInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface UserInfoRepository extends JpaRepository<UserInfo, Long> {
@Query(("SELECT u FROM UserInfo u WHERE u.username = :username"))
UserInfo findByName(@Param("username") String username);
}
7、创建impl层
java
package com.maker.service.impl;
import com.maker.entity.UserInfo;
import com.maker.service.UserInfoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserInfoRepository userInfoRepository;
public UserInfo saveUser(UserInfo user) {
return userInfoRepository.save(user);
}
}
8、创建controller层
java
package com.maker.controller;
import ch.qos.logback.core.joran.spi.HttpUtil;
import com.maker.entity.UserInfo;
import com.maker.service.UserInfoRepository;
import com.maker.service.impl.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api")
public class UserInfoController {
@Autowired
private UserInfoRepository userInfoRepository;
@Autowired
private UserService userService;
@GetMapping(value = "/list")
public List<UserInfo> getUserList(){
return userInfoRepository.findAll();
}
@RequestMapping(value = "/findByName/{username}",method = RequestMethod.GET)
public UserInfo findByName(@PathVariable String username){
// String username="Java之音";
return userInfoRepository.findByName(username);
}
@RequestMapping(value = "/saveUser",method = RequestMethod.POST)
@ResponseBody
public UserInfo saveUser(@RequestBody UserInfo userInfo){
// userInfo = new UserInfo();
// userInfo.setUsername("测试");
// userInfo.setPassword("123456");
return userService.saveUser(userInfo);
}
}
9、用apifox测试

