一、new project 选择 Spring Initializr Next
二、自定义项目名(我这边是sbjdemo)
三、选择需要依赖的包(Lombok(本人喜欢用,可以不加)、Spring Web、JDBC API、Spring Data JPA、MySQL Driver)
四、在 application.yml 添加配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver #数据库驱动
url: jdbc:mysql://localhost/sbjdemo #数据库地址
username: root #数据账号
password: 123456.Password #数据库密码
jpa:
hibernate:
ddl-auto: update #是否更新数据库(不建议开启,否则对数据库有影响)
show-sql: true #是否展示sql语句
properties:
hibernate:
format_sql: true #格式化sql语句
logging:
level:
org.hibernate.type.descriptor.sql.BasicBinder: trace #展示sql的具体参数
server:
port: 7777 #自己做测试的请求端口
五、新建 pojo、dao、service、control 文件
1. pojo
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
@Data
public class User {
@Id
private int id;
private String name;
private int age;
}
2. dao
package com.example.sbjdemo.dao;
import com.example.sbjdemo.pojo.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserDao extends JpaRepository<User, Integer> {
}
3. service
package com.example.sbjdemo.service;
import com.example.sbjdemo.dao.UserDao;
import com.example.sbjdemo.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserDao userDao;
public User save(User user) {
return userDao.save(user);
}
}
4. control
package com.example.sbjdemo.control;
import com.example.sbjdemo.pojo.User;
import com.example.sbjdemo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserControl {
@Autowired
private UserService userService;
@GetMapping("/save")
public User save(Integer id, String name, Integer age) {
User user = new User();
user.setId(id);
user.setName(name);
user.setAge(age);
return userService.save(user);
}
}
六、执行 SmjdemoApplication 类启动项目
如果出现以下错误
Error:(3, 32) java: 无法访问org.springframework.boot.SpringApplication
错误的类文件: /D:/env/repository/org/springframework/boot/spring-boot/3.0.3/spring-boot-3.0.3.jar!/org/springframework/boot/SpringApplication.class
类文件具有错误的版本 61.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中。
报错信息里所说的类文件版本指的是java class file version,java类文件版本
该版本号与jdk版本号存在对应关系,61.0对应jdk17,52.0对应jdk8
解决办法:此处使用springboot版本为3.0.0 降低为2.5.6(其他2.0的版本也行)
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.10</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
执行成功后,我们发现,数据库已经自动生成了一个user的表
这是因为我们的yml配置起了作用,如果这个不配的话,需要自己手动创建表数据;一般我们在环境上是不建议这样使用的,因为稍微改一下类代码就会影响整个数据库,风险较大。
jpa:
hibernate:
ddl-auto: update #是否更新数据库(不建议开启,否则对数据库有影响)
七、在浏览器中输入地址+端口+接口,测试成功
http://localhost:7777/save?id=1&name=lili&age=18
我们这运行器中可以发现有了一串sql
Hibernate: select user0_.id as id1_0_0_, user0_.age as age2_0_0_, user0_.name as name3_0_0_ from user user0_ where user0_.id=?
这是因为我在yml中配置了
spring:
jpa:
show-sql: true #是否展示sql语句
pom.xml完整内容
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.10</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>sbjdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>sbjdemo</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-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</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.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>