快速开发Springboot项目实现简单的增删改查,前期需要准备:idea与postman安装 Maven,MySQL(8),JDK(21)
目录
前言
springboot 使用3.0+版本,JDK使用21,MySQL使用8版本 开发环境IDEA使用2024版本
springboot内嵌了Tomcat,包含spring框架,提供starter 简化Maven配置。这里直接使用JPA作为ORM,不引入mybatis。CRUD采用rest(@PostMapping,@GetMapping("/{userId}",@PutMapping,@DeleteMapping("/{userId}")形式)风格。
相关代码组织结构:controller service repository(dao) pojo(entity) exception等
一、Spring Boot项目创建
在IDEA中点击 NEW->Project->Spring Boot 开始创建 Spring Boot 项目,Type选择Maven,JDK版本选择21,相关配置如图:
点击Next后选择Web中的Spring Web,SQL中的Spring Data JPA 和MySQL Driver后点击create
在本测试项目中,直接使用JPA作为DAO层技术支撑。
二、Spring Boot 简单增删改查
1.开发前相关文件配置
新建项目首先确定各个层级代码包名,之后编辑对应propertIes文件
application.properties编辑信息(state_owned_assets_supervise是自建数据库名):
spring.application.name=Accountability # 默认端口号8080 server.port=8088 spring.datasource.url=jdbc:mysql://localhost:3306/state_owned_assets_supervise?serverTimezone=UTC spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #show spring.jpa.show-sql=true #format_sql spring.jpa.properties.hibernate.format_sql=true #auto update db table struct spring.jpa.hibernate.ddl-auto=update
相关项目代码结构如图:
2.编辑相关代码
直接点击启动 AccountabilityApplication类
相关代码结构如图:
在三层模型中,使用repository链接数据库对数据CRUD,之后Service层调用数据访问层进行组合,controller层调用Service层获得结果后返回给前台。
由于使用的是JPA可以直接新建实体类通过实体类自动在MySQL中建表。代码如下:
package org.jac.accountability.pojo;
import jakarta.persistence.*;
@Table(name = "db_user")
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Integer userId;
@Column(name = "user_name")
private String userName;
private String password;
private String email;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"userId=" +userId+
"userName" + userName+
"password" +password+
"email" +email+
"}";
}
}
相关注解:
@Table(name = "db_user") MySQL数据库中对应实体类名称为 db_user @Entity 表明实体类 @Id 表明该ID字段为主键 @GeneratedValue(strategy = GenerationType.IDENTITY) 主键ID自增策略 @Column(name = "user_id") MySQL数据库字段使用蛇形命名,需要变更Java类中命名方式
2.1 编写controller层
2.2编写service层
总结