spring-boot学习(2)

上次学习截止到拦截器

1.构建RESfun服务

PathVariable通过url路径获取url传递过来的信息

2.MyBatisPlus

第三行的mydb要改为自己的数据库名

第四,五行的账号密码改成自己的

@MaooerScan告诉项目自己的这个MyBatisPlus是使用在哪里的,包名

实体类的定义:

MyBtaisPlus可以减少基本sql语句的应用,继承BaseMapper<T>即可,T为你的实体类。

键的注解:

在 Java 开发中,尤其是在使用 MyBatis-Plus 这样的 ORM 框架时,@TableId@TableField 注解用于描述与数据库表字段的映射关系。以下是这两个注解的详细解释:

1. @TableId

@TableId 注解用于标识实体类中的主键字段。它提供了主键的相关配置,确保在数据库操作时正确处理主键。

主要属性:
  • value: 指定数据库表中的主键字段名。
  • type : 指定主键的生成策略,可以是以下几种类型:
    • Input: 用户手动输入主键
    • ID_WORKER: 雪花算法生成主键(默认)
    • UUID: 生成 UUID 作为主键
    • ASSIGN_ID: 自增主键(如数据库自增字段)
java 复制代码
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@TableName("user")
public class User {
    @TableId(value = "user_id", type = IdType.ASSIGN_ID)
    private Long userId;

    private String username;
    private String email;

    // getters 和 setters
}
2. @TableField

@TableField 注解用于描述实体类中的普通字段,指定它们与数据库表字段的映射关系。可以用来控制字段的特性,如是否在 SQL 操作中包含、字段名等。

主要属性:
  • value: 指定数据库表中的字段名。
  • exist : 指定该字段在数据库表中是否存在,默认值为 true。如果设置为 false,则在数据库操作时将忽略该字段。
  • fill: 用于字段的自动填充策略,常用于插入或更新时填充字段(例如创建时间、修改时间等)。
示例:
java 复制代码
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;

@TableName("user")
public class User {
    @TableId(value = "user_id", type = IdType.ASSIGN_ID)
    private Long userId;

    @TableField("username")
    private String username;

    @TableField(value = "email", exist = true)
    private String email;

    @TableField(value = "created_time", fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    // getters 和 setters
}
3. 总结
  • @TableId 用于定义实体类的主键及其生成策略。
  • @TableField 用于定义普通字段及其数据库映射关系,提供更多的灵活性。
  • 这两个注解是 MyBatis-Plus 中简化数据库操作的核心部分,可以帮助开发者更方便地进行数据持久化管理。

3.MyBtisPlus的多表查询及分页查询

这里的代替什么便签,是指MyBatis的便签(表格里面的便签)

分页配置:

多表查询:

相关推荐
殷紫川1 天前
深入拆解 Java volatile:从内存屏障到无锁编程的实战指南
java
eddieHoo1 天前
查看 Tomcat 的堆内存参数
java·tomcat
cch89181 天前
Python主流框架全解析
开发语言·python
那个失眠的夜1 天前
Mybatis延迟加载策略
xml·java·数据库·maven·mybatis
十五年专注C++开发1 天前
RTTR: 一款MIT 协议开源的 C++ 运行时反射库
开发语言·c++·反射
Java成神之路-1 天前
SpringMVC 响应实战指南:页面、文本、JSON 返回全流程(Spring系列13)
java·spring·json
殷紫川1 天前
深入拆解 synchronized:从偏向锁到重量级锁的升级之旅与优化秘籍
java
Momentary_SixthSense1 天前
设计模式之工厂模式
java·开发语言·设计模式
殷紫川1 天前
深入拆解 Java 内存模型:从原子性、可见性到有序性,彻底搞懂 happen-before 规则
java·后端
殷紫川1 天前
ThreadLocal 深度剖析:底层实现、内存泄漏根因与生产环境避坑指南
java