首页 > 其他分享 >mybatis-plus常用注解和方法

mybatis-plus常用注解和方法

时间:2023-03-26 13:35:19浏览次数:58  
标签:String private plus User mybatis 注解 主键 user

初识mybatis-plus

  • 简介
    MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

  • 那么它是怎么增强的呢?
    其实就是它已经封装好了一些crud方法,我们不需要再写SQL语句了,直接调用这些方法就行(单表操作)。

注意:

  1. POM文件中将mybatis依赖换成mybatis plus (不能同时存在,避免冲突)。
  2. DAO层中你要创建的Mapper类必须继承BaseMapper,通过继承BaseMapper接口来实现dao接口功能的增强(也就是说你可以开始使用myabtis-plus提供的封装好的CRUD方法了)

快速开始:

//User类
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {
    private Integer id;
    private String name;
    private Integer age;
    private Date bir;
}
//编写 Mapper 包下的 UserMapper接口
public interface UserMapper extends BaseMapper<User> {

}

现有一张 User 表,我要查找User表中的所有数据

//添加测试类,进行功能测试:
@SpringBootTest
public class SampleTest {
    @Autowired
    private UserMapper userMapper;
    @Test
    public void testSelect() {
      //使用mybatis-plus提供的selectList方法测试,null是无查询条件
      //通过selectList查出user表中的所有数据
        List<User> userList = userMapper.selectList(null);
        for (User user : userList) {
              System.out.println(user.toString());
          }
    }
}

但是注意!你并没写任何SQL语句,你也没有指定selectList方法去查询哪个数据表,那么它是如何完成java类和数据表的映射呢?

它其实是默认通过Java类名去对应数据库的表名,找不到对应的表名就会报错。但是这样很不灵活,如果我Java类名和我要查询的表名不一样那我就没法干活了吗?
mybatis-plus的开发者当然也知道这个问题,上面说的只是它的默认映射规则,真正开发时我们会用注解来解决Java类名和对应数据库的表名映射问题。

1. 常用的注解

@TableName

  • 描述:表名注解,标识实体类对应的表
  • 使用位置:实体类

比如说java类名是User但要查询的数据表是sys_user,我们就用这个注解来联系它们,这样就不会因为找不到对应的表而报错了。

@TableName("sys_user")//也可以写成@TableName(value="sys_user")
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

@TableId

  • 描述:主键注解
  • 使用位置:实体类主键字段
属性 类型 必须指定 默认值 描述
value string Java类id名 主键字段名
type 枚举类 idType.NONE 指定主键类型
@TableName("sys_user")
public class User {
  //两个参数不一定非要写,看情况
  @TableId(value="uid",type=IdType.AUTO)//表主键为uid,自增
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

IdType:

描述
AUTO 数据库 ID 自增
NONE 无状态,该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
ASSIGN_ID 分配 ID(主键类型为 Number(Long 和 Integer)或 String)(since 3.3.0),使用接口IdentifierGenerator的方法nextId(默认实现类为DefaultIdentifierGenerator雪花算法)

@TableField

  • 描述:字段注解(非主键)
@TableName("sys_user")
public class User {
    @TableId(value="uid",type=IdType.AUTO)//表主键为uid,自增
    private Long id;
    @TableField(value="nickname")
    private String name;
    private Integer age;
    private String email;

    @TableField(exist=false)//不映射数据表中的任何字段
     private String aaaa;
}
属性 类型 必须指定 默认值 描述
value string Java类id名 数据库字段名
exist Boolean true 是否为数据表字段

如果我的Java类中有一个要用的属性但是和数据表字段无关,而mybatis-plus会自动匹配,然后报错,这时候exist属性就派上了用场。当exist默认为true,说明对应Java属性是数据表字段,如果不是数据表字段,则设为false,便不会被自动匹配数据表字段名。

2. 常用的方法

https://www.bilibili.com/video/BV1pK411W7Hu/?p=4&spm_id_from=pageDriver&vd_source=d6b43fe5a17f1824e85b234397b588bc

标签:String,private,plus,User,mybatis,注解,主键,user
From: https://www.cnblogs.com/liyaaixuexi/p/17258520.html

相关文章

  • 》》》IDEA Mybatis中xml文件粘贴SQL导致左对齐,样式发生变化
    转载:IDEAMybatis中xml文件粘贴SQL导致左对齐,样式发生变化_ideamybatissql格式_诛心小恶魔的博客-CSDN博客IDEA在编辑mybatis中xml文件的时候,默认是不保留粘贴文本的缩......
  • 枚举和注解
    枚举和注解枚举1.枚举定义枚举对应英文(enumeration,简写enum)枚举是一组常量的集合可以这样理解:枚举属于一种特殊的类,里面只包含一组有限制的特定的对象2.自定义......
  • day13-SpringBoot整合MyBatis/Plus
    SpringBoot整合MyBatis/Plus1.SpringBoot整合MyBatis1.1整合案例需求:整合SpringBoot和Mybatis,向数据库中查询数据。项目结构:1.1.1创建数据库和表--创建数据库DROP......
  • 关于Mybatis知识点
    什么是Mybatis?Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。......
  • mybatis xml文件热加载实现
    本文博主给大家带来一篇mybatisxml文件热加载的实现教程,自博主从事开发工作使用Mybatis以来,如果需要修改xml文件的内容,通常都需要重启项目,因为不重启的话,修改是不生......
  • Mybatis源码(十):Mybatis插件机制
    1、Mybatis插件支持拦截的对象MyBatis允许使用插件来拦截的方法调用,可在映射语句执行流程中进行拦截调用。Mybatis插件支持拦截的对象:1、Executor:执行器Execu......
  • 三大框架——持久层框架Mybatis
    持久层框架MyBatis1.mybatis介绍2.执行流程3.使用步骤代码实现举例:商品分类CRUD操作4.关联关系4.1一对一4.2一对多5.参数占位符6.复杂搜索6.......
  • MyBatis机制介绍与原理
    插件简介什么是插件插件是一种软件组件,可以在另一个软件程序中添加功能或特性。插件通常被设计成可以随时添加或删除的,而不影响主程序的功能。插件可以扩展软件程序的功......
  • mybatis实现查看详情
    查看详情1.编写接口方法:Mapper接口***参数:id结果BrandBrandselectByld(intid);2.编写SQL语句:SQL映射文件......
  • element-plus的el-dialog对话框组件自定义样式未生效
    修改dialog组件样式必须在非scoped环境下,再加一个style标签,并给需要加的dialog一个类名eg:createDialog<stylelang="scss"scoped>...</style><stylelang="scss">.crea......