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的便签(表格里面的便签)

分页配置:

多表查询:

相关推荐
小玮看世界2 分钟前
[Python]动态规划三步走:从爬楼梯到打家劫舍,再到最大子数组和
开发语言·python·动态规划
lhldsg5 分钟前
宠物同城领养平台开发实战:从需求分析到上线部署指南
java·前端·小程序·需求分析·宠物
AI视觉网奇6 分钟前
3d子部件高亮选中
开发语言·javascript·3d
风萧萧19999 分钟前
JAVA :JSONObject转换为XML
xml·java·python
阿图灵9 分钟前
LangGraph 实战 03:Workflows 与 Agents——六种工作流模式与智能体实战(附 6 个可运行示例)
java·前端·javascript·工作流·ai agent·智能体·langgraph
程序员三明治15 分钟前
【体验毛坯房】Deep Harness 入门教程
java·人工智能·后端·大模型·llm·deepseek·dsh
zzzll111115 分钟前
深入理解 Java HashMap:从原理到实战
java·开发语言·哈希算法
每天题库19 分钟前
机修钳工题库计算题专练,尺寸公差公式熟练应用
学习·安全·考试·题库·考证
猫猫不是喵喵.23 分钟前
Java开发高频面试题汇总(通俗易懂版)
java·开发语言·java高频面试
k4m7v2pz30 分钟前
用 rust-verb-shell 重写进程管理:从 game.sh 到 .rvs 的迁移实录
开发语言·后端·rust