一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++
spring boot后端
新建spring boot项目

generate后解压,在idea中打开pom.xml文件,记得open as project

- java放java代码
- resources放静态文件
- appliication.properties配置文件
- pom.xml配置依赖

- 手动更新maven
- 配置好java版本等
后端和数据库连接

在一个后端项目中,尤其是基于Spring Boot等框架的项目中,常见的目录结构通常包括
common、config、controller、entity、filter、mapper、service和util等包。它们各自承担着不同的职责和功能。以下是它们的基本作用和意义:1. common(公共部分)
- 作用:
common包通常用于存放项目中多个模块共享的工具类、常量、异常处理、日志等公共代码。
- 内容:
- 公共常量类(例如:
public static final常量)。 - 公共工具类(例如:字符串处理、日期格式化等)。
- 自定义的异常类。
- 项目通用的响应结果封装(如:统一返回的
Response类)。
- 示例:
Result.java:用于封装所有API的返回结果(包括状态码、消息、数据等)。Constants.java:存放项目中的常量。
2. config(配置类)
- 作用:
config包用于存放项目的各种配置类,通常包括数据库配置、缓存配置、安全配置等。
- 内容:
- 数据源配置(如:MySQL、Redis、MongoDB等)。
- Spring Security配置(权限控制相关)。
- 其他第三方服务的配置(如:邮件、短信、文件上传等)。
- 项目全局的配置类(如:跨域配置、全局异常处理等)。
- 示例:
DatabaseConfig.java:数据库连接池的配置类。SecurityConfig.java:Spring Security的配置类,定义认证与授权的规则。
3. controller(控制器层)
- 作用:
controller包用于处理前端的HTTP请求,接受用户输入并返回响应。它充当了请求和业务逻辑之间的桥梁。
- 内容:
- 接受用户请求的API接口方法。
- 调用
service层进行业务处理。 - 返回
service层的结果给前端。
- 示例:
ResidentController.java:处理与Resident相关的请求,例如查询居民信息、添加居民等。
4. entity(实体类)
- 作用:
entity包用于存放数据库表的映射类(也称为实体类)。它与数据库中的表结构一一对应,通过JPA或MyBatis框架进行持久化操作。
- 内容:
- 每个数据库表通常有一个对应的实体类。
- 实体类包含字段、getter/setter方法和映射注解。
- 示例:
Resident.java:对应数据库中的resident表,包含id、name、birthDate等字段。
5. filter(过滤器)
- 作用:
filter包用于存放自定义的过滤器,通常用于对HTTP请求进行预处理或者后处理。过滤器在请求到达controller之前或响应返回前执行。
- 内容:
- 用于身份验证、请求日志、跨域处理等功能。
- 常见的如:日志过滤器、请求限流、权限过滤器等。
- 示例:
LoggingFilter.java:记录每个请求的日志。AuthenticationFilter.java:用于验证用户的身份信息。
6. mapper(数据访问层)
- 作用:
mapper包通常用于存放与数据库交互的接口类(MyBatis)或者JPA的Repository接口类。它们定义了如何与数据库进行操作(如增删改查)。
- 内容:
- 在
MyBatis中,Mapper接口和XML文件存放查询SQL。 - 在
JPA中,Repository接口提供CRUD操作。
- 示例:
ResidentMapper.java:MyBatis的Mapper接口,定义了查询居民数据的SQL方法。ResidentRepository.java:Spring Data JPA的Repository接口,提供对Resident实体类的数据库操作。
7. service(服务层)
- 作用:
service包用于存放业务逻辑层代码。service层调用mapper层处理具体的数据库操作,并对业务逻辑进行处理后返回结果给controller。
- 内容:
- 业务逻辑处理(例如:数据验证、数据计算、调用外部服务等)。
- 调用
mapper层执行数据库操作。
- 示例:
ResidentService.java:业务服务类,处理居民数据相关的业务逻辑,如添加、删除居民等。
8. util(工具类)
- 作用:
util包用于存放一些通用的工具类,通常是实现特定功能的静态方法,方便在项目中多次调用。
- 内容:
- 通用的功能方法(如:文件操作、日期处理、加密解密等)。
- 辅助性的工具方法。
- 示例:
DateUtil.java:用于处理日期格式转换的工具类。FileUtil.java:用于文件操作的工具类。
项目中各部分的关系:
Controller:负责接收前端请求并调用Service层进行业务处理。
Service:处理业务逻辑,调用Mapper层进行数据库操作,返回处理结果。
Mapper:负责数据库的增删改查操作,调用Entity类来映射数据库表。
Entity:与数据库表一一映射的类。
Config:存放项目的配置类。
Filter:自定义的请求过滤器,通常在请求前后进行处理。
Common:存放项目的公共部分,如常量、工具类、异常等。
Util:常见的辅助工具类,用于简化代码的编写。
实体类
数据库 ( BIGINT) | Java | Python | JavaScript (Node.js) | Go |
BIGINT (biglong) | Long | int(Python3 中 int 可自动扩展) | BigInt(ES6+)或 String | int64 |
VARCHAR(n) | String | str | STRING(Sequelize)或 string(TypeScript) | string |
tinyint | boolean | BooleanField | BOOLEAN / TINYINT(1) | bool |
DATE | java.time.LocalDate(Java 8+)或 java.sql.Date(旧版) | datetime.date | DataTypes.DATEONLY(Sequelize)或 Date(TypeORM) | time.Time(使用 gorm:"type:date") |
@Enumerated(EnumType.STRING)- 指定枚举的存储方式,存储为字符串(如
"male"、"female")。
- 如果不加这个注解,默认是存整数索引,如
0(代表MALE)、1(代表FEMALE)。
- 推荐使用
EnumType.STRING,避免索引变动导致数据错乱。
1. 定义实体类
实体类通常用
@Entity注解标记,表示该类是一个JPA实体类,并且将与数据库中的表进行映射。2. 指定表名
使用
@Table注解来指定该实体类映射到数据库中的表名。3. 定义主键
主键字段需要用
@Id注解标记,@GeneratedValue用于指定主键的生成策略。4. 定义属性与列的映射
每个字段通常使用
@Column注解里面要与数据库对应。可以指定列名、是否为空、默认值等。@Column(name="medical_insurance") 5. 处理日期类型
使用
@Temporal注解来标记日期字段,指定数据库中存储的类型(DATE、TIME、TIMESTAMP)。6. 处理枚举类型
对于枚举类型,使用
@Enumerated注解来指定映射方式,可以选择存储为String(EnumType.STRING)或者int(EnumType.ORDINAL)。7. 定义无参构造方法
JPA要求实体类必须有一个无参构造方法,通常这个构造方法可以是
public的,也可以是protected的。8. 添加Getter和Setter方法
为了让JPA可以访问和修改实体类的属性,需要提供Getter和Setter方法。
实例

接收前端信息
在controller中添加该注解
@CrossOrigin(origins = "*")项目运行

Prev
数据库
Next
前端
Loading...