当前位置: 首页 > wzjs >正文

企业制作网站服务深圳福田保安公司

企业制作网站服务,深圳福田保安公司,建设公司网站账务处理,现在去环球中心会变黄码吗提示:MyBatis-Plus(MP)是一个 MyBatis的增强版 文章目录 前言使用MybatisPlus的基本步骤1、引入MybatisPlus依赖代替Mybatis依赖2、定义Mapper接口并继承BaseMapper他是怎么知道哪张表,哪些字段呢 3、实体类注解4、根据需要添加配…

提示:MyBatis-Plus(MP)是一个 MyBatis的增强版

文章目录

  • 前言
  • 使用MybatisPlus的基本步骤
    • 1、引入MybatisPlus依赖代替Mybatis依赖
    • 2、定义Mapper接口并继承BaseMapper
      • 他是怎么知道哪张表,哪些字段呢
    • 3、实体类注解
    • 4、根据需要添加配置


前言

提示:这里可以添加本文要记录的大概内容:

使用MybatisPlus的基本步骤

pom.xml文件引入依赖

1、引入MybatisPlus依赖代替Mybatis依赖

MyBatisPlus官方提供了starter,其中集成了MybatisMybatisPlus的所有功能,并且实现了自动装配效果。因此可以用MybatisPlusstarter代替Mybatisstarter

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version>
</dependency>

2、定义Mapper接口并继承BaseMapper

自定义的Mapper继承MybatisPlus提供的BaseMapper接口:

public interface UserMapper extends BaseMapper<User> {// 继承 BaseMapper 后,无需手动编写 CRUD 方法
}

单表的增删改查可以不用写SQL语句、mapper 接口

原来mapper接口:

public interface UserMapper {void saveUser(User user); // 保存用户void deleteUser(Long id); // 根据 ID 删除用户void updateUser(User user); // 更新用户信息User queryUserById(@Param("id") Long id); // 根据 ID 查询用户List<User> queryUserByIds(@Param("ids") List<Long> ids); // 根据 ID 列表批量查询用户
}

继承后:注意泛型为实体类的类型

public interface UserMapper extends BaseMapper<User> {//实体类void saveUser(User user);    // 对应 BaseMapper.insert()void deleteUser(Long id);    // 对应 BaseMapper.deleteById()void updateUser(User user);  // 对应 BaseMapper.updateById()User queryUserById(@Param("id") Long id);          // 对应 BaseMapper.selectById()List<User> queryUserByIds(@Param("ids") List<Long> ids);  // 对应 BaseMapper.selectBatchIds()
}

他是怎么知道哪张表,哪些字段呢

MyBatisPlus通过扫描实体类,并基于反射获取实体类信息作为数据库表信息。

遵循MP约定:
默认以类名驼峰转下划线作为表名
默认把名为id的字段作为主键
默认把变量名驼峰转下划线作为表的字段名,不遵循约定就要用注解

不符合约定的要自己定义表名、字段名
在这里插入图片描述

3、实体类注解

三个注解的核心用途和区别:

注解作用常见场景
@TableName指定实体类对应的数据库表名实体类名与表名不一致时
@TableId指定主键字段及其生成策略主键字段名与列名不一致或需要指定生成策略
@TableField指定普通字段的映射关系或忽略字段字段名与列名不一致或需要忽略某些字段

通过合理使用这些注解,可以轻松实现实体类与数据库表之间的映射,同时满足各种复杂的业务需求。
在这里插入图片描述

@TableName("tb_user") // 指定数据库表名为 "tb_user"
public class User {@TableId(type = IdType.ASSIGN_ID) // 雪花算法生成主键private Long id;@TableField("username") // 数据库列名为 "username",映射到实体类的 name 字段private String name;@TableField("is_married") // 数据库列名为 "is_married",映射到实体类的 isMarried 字段private Boolean isMarried;@TableField("`order`") // 数据库列名为 "order"(避免与 SQL 关键字冲突),需要使用反引号包裹private Integer order;@TableField(exist = false) // 非数据库字段,不映射到数据库private String address;
}

IdType 枚举

  • AUTO:数据库自增长
  • INPUT:通过 set 方法自行输入主键值,需手动指定主键。
  • ASSIGN_ID:分配 ID,通过 IdentifierGenerator 接口的 nextId 方法生成主键,默认实现类为 DefaultIdentifierGenerator,基于雪花算法生成唯一 ID。

使用 @TableField 的常见场景

  1. 成员变量名与数据库字段名不一致
    当实体类的成员变量名与数据库表中的字段名不一致时,可以使用 @TableField 注解来指定数据库字段名。

  2. 成员变量名以 is 开头,且是布尔值
    如果实体类的布尔类型字段以 is 开头,而数据库字段名通常没有 is 前缀,可以通过 @TableField 映射字段名。

  3. 成员变量名与数据库关键字冲突
    如果实体类的字段名与 SQL 关键字冲突(如 ordergroup 等),需要使用 @TableField 注解,并通过反引号包裹字段名以避免语法错误。

  4. 成员变量不是数据库字段
    如果实体类中某些字段不需要映射到数据库表(如临时字段或计算字段),可以使用 @TableField(exist = false) 忽略该字段。


IdType的常见类型有哪些?

类型主键生成方式适用场景
AUTO数据库自增数据库支持自增主键(如 MySQL)
ASSIGN_IDMyBatis-Plus 雪花算法生成全局唯一 ID,适用于非自增主键
INPUT手动输入主键值由业务逻辑生成
ASSIGN_UUIDMyBatis-Plus 生成 UUID字符串类型主键,适用于分布式系统
NONE未设置主键生成策略主键生成逻辑由外部处理

4、根据需要添加配置

MyBatisPlus的配置项继承了MyBatis原生配置和一些自己特有的配置
在这里插入图片描述


文章转载自:

http://IfhyBcGX.rjLjb.cn
http://UUtYycEz.rjLjb.cn
http://Lyi2PppH.rjLjb.cn
http://9Kls0zdq.rjLjb.cn
http://tJ3tCBjo.rjLjb.cn
http://GdmnfQ0W.rjLjb.cn
http://EcdSLZZ7.rjLjb.cn
http://UEpD25Id.rjLjb.cn
http://9bG3XFJr.rjLjb.cn
http://i0NLNiVI.rjLjb.cn
http://iQPsMaMP.rjLjb.cn
http://VVktyMib.rjLjb.cn
http://Re97Wc0I.rjLjb.cn
http://uSSppnuW.rjLjb.cn
http://RL7YjSU2.rjLjb.cn
http://sxnwNAIo.rjLjb.cn
http://y08YJ1Lb.rjLjb.cn
http://5nfEMWMR.rjLjb.cn
http://MQBFUe01.rjLjb.cn
http://MzmNHLmc.rjLjb.cn
http://WTBQ3VFb.rjLjb.cn
http://MyuOKzuA.rjLjb.cn
http://xobf3061.rjLjb.cn
http://ONoYeKAg.rjLjb.cn
http://8EN366NV.rjLjb.cn
http://oNY5VQ3m.rjLjb.cn
http://3mepXBRR.rjLjb.cn
http://ujqpDWbs.rjLjb.cn
http://4NFwwlom.rjLjb.cn
http://xoIo5TNg.rjLjb.cn
http://www.dtcms.com/wzjs/743152.html

相关文章:

  • 一级a做爰片手机电影网站哪个网站做五金冲压的
  • 青浦门户网站wordpress 软件
  • 做竞价改网站可以吗网站代备案公司
  • 网站系统改教程网站如何设定关键词
  • 广东网站备案宁阳网站建设价格
  • 网站的内容包括什么windows搭建网站
  • 郴州市北湖建设局网站新闻类网站怎么做
  • wordpress ajax json应用商店关键词优化
  • 网站备案是备案域名还是空间游戏科技网站
  • 软文怎么优化网站如何做私人网页
  • 什么做直播网站好网站建设评分标准
  • 设计模板网站目字形布局结构的网站
  • 万网域名注册号后怎么做网站鄂州第一网官网
  • 电脑如何做网站广州seo托管
  • 高端外贸网站建设关于手表的网站
  • 上合建设网站企业本地的佛山网站建设
  • 做卖车网站需要什么手续网站内容智能
  • 如何自建淘宝客网站建设公司需要网站吗
  • h5网站怎么做免费wordpress商城主题下载地址
  • 网站营销应该怎么做云南网站建设模块
  • 网络营销教学网站seo企业网站源码
  • 博客社区类网站模板下载中国建筑网官网查询系统
  • 石家庄有没有销售做被用的网站建设局网站公示的规划意味着什么
  • 做我女朋友程序网站如何制作网络投票的网页
  • 六盘水做网站征求网站建设
  • 腾讯微校怎么做微网站网站开发实验报告三
  • 网站备案主体淘宝客优惠券网站建设教程
  • 网站建设的基本要素有教做吃的网站
  • 瑞安企业网站建设广东传染病最新消息
  • 做网站的背景像素美食网站建设项目预算