//组装查询条件
@Test
public void test(){
//查询用户包含 a,年龄在20到30之间,并且邮箱不为 null 的用户信息
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name","a")
.between("age",20,30)
.isNotNull("email");
userMapper.selectList(queryWrapper).forEach(System.out::println);
}
组装排序条件:
//组装排序条件
@Test
public void test02(){
//按年龄降序查询用户,如果年龄相同则按 id 升序排序
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("age")
.orderByAsc("id");
userMapper.selectList(queryWrapper).forEach(System.out::println);
}
组装条件删除:
//组装删除条件
@Test
public void void03(){
//删除 email 为空的数据
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.isNull("email");
int result = userMapper.delete(queryWrapper);
System.out.println(result);
}
条件的优先级:
//条件的优先级
@Test
public void test04(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//将 (年龄大于 20并且用户名中包含 a) 或邮箱为 null的用户信息修改
queryWrapper.like("name","a")
.gt("age",20)
.or()
.isNull("email");
User user = new User();
user.setAge(18);
user.setEmail("1@163.com");
int result = userMapper.update(user,queryWrapper);
System.out.println(result);
}
组装 select 语句:
//组装 select 子句
@Test
public void test05(){
//查询用户信息的 name 和 age 字段
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("name","age");
//selectMaps() 返回 Map 集合列表,通常配合 select() 使用,避免 User 对象中
//没有被查询到的列值为 null
userMapper.selectMaps(queryWrapper).forEach(System.out::println);
}
实现子查询:
@Test
public void test06(){
//查询 id 小于等于 3 的用户信息
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.inSql("id","select id from t_user where id <= 3");
userMapper.selectList(queryWrapper).forEach(System.out::println);
}
UpdateWrapper:
//UpdateWrapper
@Test
public void test07(){
//将(年龄大于 20 或邮箱为 null) 并且用户名中包含有 a 的用户信息修改
//组装 set 子句以及修改条件
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
//lambda 表达式内的逻辑优先运算
updateWrapper.set("age",18)
.set("email","user@163.com")
.like("name","a")
.and(i -> i.gt("age", 20).or().isNull("email"));
//注意:
//这里必须创建 User 对象,否则无法应用自动填充. 如果没有自动填充,可以设置为null,
//User user = new User();
//user.setName("张三");
int result = userMapper.update(null,updateWrapper);
System.out.println(result);
}
@Test
public void test10(){
//组装 set 句子
LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(User::getAge,18)
.set(User::getEmail,"user@qq.com")
.like(User::getName,"a") //Lambda 表达式的逻辑优先运算
.and(i -> i.lt(User::getAge,24).or().isNull(User::getEmail));
User user = new User();
int result = userMapper.update(user,updateWrapper);
System.out.println(result);
}
插件:
分页插件:
MyBatis-Plus 自带分页插件,只要简单的配置即可实现分页功能
添加配置类:
@Configuration
@MapperScan("com.springboot.mybatisplus.mapper")
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
测试:
@Test
public void test11() {
//设置分页参数
Page<User> page = new Page<>(1,5);
userMapper.selectPage(page,null);
List<User> list = page.getRecords();
list.forEach(System.out::println);
System.out.println("当前页:"+page.getCurrent());
System.out.println("每页显示的条数:"+page.getSize());
System.out.println("总记录数:"+page.getTotal());
System.out.println("总页数:"+page.getPages());
System.out.println("是否有上一页:"+page.hasPrevious());
System.out.println("是否有下一页:"+page.hasNext());
}
1456. 定长子串中元音的最大数目 给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为(a, e, i, o, u)。 这道题的暴力求解的思路是通过遍历字符串 s 的每一个长度为 k 的子串…
目录 一、前言
二、AI 编程介绍
2.1 AI 编程是什么
2.1.1 为什么需要AI辅助编程
2.2 AI 编程主要特点
2.3 AI编程底层核心技术
2.4 AI 编程核心应用场景
三、AI 代码辅助编程解决方案
3.1 AI 大模型平台
3.1.1 AI大模型平台代码生成优缺点
3.2 AI 编码插件
3.3 AI 编…