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

mybatis-plus学习笔记

使用mybatis-plus需要一些配置

mybatis配置

xml中配置:

<!--mybatisplus起步依赖-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version>
</dependency>
<!--MySQL提供的JDBC驱动包,用于在Java应用程序中连接MySQL数据库-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency>

yml中配置

#@SpringBootApplication -——》启动所包含的@EnableAutoConfiguration 自动扫描yml进行设置
#配置数据源
spring:datasource:username: rootpassword: rooturl: jdbc:mysql://192.168.227.128:3306/mp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=falsedriver-class-name: com.mysql.cj.jdbc.Driver

配置结束后建立实体类

实体类:主要用于封装数据并提供对数据的访问和操作方法

@Data                    //可选
@Builder                 //可选
@TableName("user")       //对应表的名字,实体类的类名(转成小写后)和数据库表名相同时,可以不指定该注解
public class User {private Long id;private String name;private Integer age;private String email;private Long managerId;private Date createTime;
}

在mapper层的操作,定义一个操作这个表的接口

传入实体类User,BaseMapper会自动生成crud等常用方法

public interface UserMapper extends BaseMapper<User> {}

在建立启动类的时候加入@MapperScan(com.lsr.mapper)注解扫描启动类的文件

扫描后用private UserMapper usermapper可能会标红,但是不影响,跳过ideal检测即可,如果直接在每个Mapper接口加@Mapper注解就不会标红,但是太麻烦没必要,直接跳过ideal检测

mybatis-plus生成的mapper的使用如下

插入数据

public void test01(){User user = User.builder() //用lombok包中的builder方法来创建实例更方便.id(1234l)             //但需要在User实体类上加@Builder注解.name("lsr").age(18).email("1234@qq.com").managerId(1235l).build();userMapper.insert(user);  //insert方法需要传入一个实例
}

查询数据

userMapper.selectById()
需要传入的id实现了Serialzable接口
image-20250919193421155

主键集合查找

  //通过主键的集合来查找public void test01(){List<Long> longs = Arrays.asList(1088250446457389058l, 1234l);List<User> users = userMapper.selectBatchIds(longs);}
  //通过传入一个Map来查询,map的key为表的字段名,value为表的字段值public void test01(){HashMap<String, Object> hashMap = new HashMap<>();hashMap.put("name","lsr");List<User> users = userMapper.selectByMap(hashMap);}

条件构造器

  //通过selectMaps可返回自己想要的字段,而不是一个user对象public void test01(){QueryWrapper<User> wrapper = new QueryWrapper<>();wrapper.select("id","name");wrapper.eq("id",1234l);List<Map<String, Object>> mapList = userMapper.selectMaps(wrapper);System.out.println(mapList);}
http://www.hskmm.com/?act=detail&tid=9934

相关文章:

  • 区间问题
  • 操作系统,知识体系一共包含哪些部分? - 实践
  • vscode 下载 VS Code Server 卡住(无需手动下载)
  • 查询本地IPV6 地址
  • 解决 Ubuntu 25.04 下 make menuconfig 报 ncurses 错误的问题 - 指南
  • web359
  • web360
  • 缺失的第一个正数-leetcode
  • hbase的安装应用
  • 如何在后端优雅地生成并传递动态错误提示?
  • 深入解析:Java全栈开发面试实录:从基础到微服务的实战解析
  • web358
  • 04_Redis凭啥这么牛:核心特性剖析
  • WPF包
  • 惊爆!Flutter消息通道的超神全解析!
  • ctfshow web351
  • ctfshow web353
  • Linux虚拟机常用命令与Hadoop生态组件启动大全
  • BGP路由属性与选路-1
  • private void Form1_Load和 private void Form1_Activated 方法区别
  • BGP反射路由器
  • HarmonyOS Stage模型与ArkTS:现代应用开发的核心架构与最佳实践 - 详解
  • H5 页面与 Web 页面的制作方法 - 实践
  • Spring Cloud Gateway吞吐量优化
  • upload-labs
  • 物联网摄像头硬件设计秘籍:低成本与低功耗的平衡之道
  • CF182C Optimal Sum
  • 关于网络社交
  • nginx学习笔记一:基础概念
  • HTB UNIV CTF 24 Armaxix靶场漏洞链:命令注入与账户接管实战