@SpringBootTest@RunWith(SpringRunner.class)classUserMapperTest{@Autowiredprivate UserMapper userMapper;//根据id查询@TestpublicvoidtestSelectById(){
User user = userMapper.selectById(1L);
System.out.println(user);}}
3. CRUD
3.1 添加
方法解析
测试
@TestpublicvoidtestInsert(){
User user =newUser();//user.setId(6L);
user.setUserName("itcast");
user.setPassword("itheima");int count = userMapper.insert(user);
System.out.println(count);}
实体类上的注解 @TableField
@TableField("user_name")指定映射关系
忽略某个字段的查询和 插入@TableField(exist = false)
设置id生成策略:AUTO 数据库自增@TableId(type = IdType.AUTO)
配置
mybatis-plus:global-config:db-config:# 表名前缀table-prefix: tb_
# id生成策略 数据库自增id-type: auto
configuration:# 日志log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
List ids =newArrayList();
ids.add(6);
ids.add(7);
userMapper.deleteBatchIds(ids);
根据map构造条件,删除
Map<String, Object> map =newHashMap<>();//delete from tb_user where user_name = ? and age = ?
map.put("user_name","itcast");
map.put("age","18");
userMapper.deleteByMap(map);
3.3 更新
@TestpublicvoidtestUpdateById(){
User user =newUser();
user.setId(2L);
user.setPassword("1111111");int count = userMapper.updateById(user);}
# 通过 QueryWrapper 指定查询条件
eq(): 等于 =
ne(): 不等于 <>
gt(): 大于 >
ge(): 大于等于 >=
lt(): 小于 <
le(): 小于等于 <=
between (): BETWEEN 值1 AND 值2
notBetween (): NOT BETWEEN 值1 AND 值2
in():in
notIn() :not in
@TestpublicvoidtestWrapper1(){//1.创建查询条件构建器
QueryWrapper<User> wrapper =newQueryWrapper<>();//2.设置条件
wrapper.eq("user_name","lisi").lt("age",23).in("name","李四","王五");//select * from tb_user where user_name = ? and age < ? and name in (?,?)
List<User> users = userMapper.selectList(wrapper);
System.out.println(users);}
逻辑查询 or
or( ) :让紧接着下一个方法用or连接
@TestpublicvoidtestWrapper2(){//1.创建查询条件构建器
QueryWrapper<User> wrapper =newQueryWrapper<>();//2.设置条件
wrapper.eq("user_name","lisi").or().lt("age",23).in("name","李四","王五");// select * from tb_user where user_name = ? or age < ? and name in (?,?)
List<User> users = userMapper.selectList(wrapper);
System.out.println(users);}
模糊查询 like
like 、 notLike 、 likeLeft 、 likeRight
//模糊查询@TestpublicvoidtestWrapper3(){//1.创建查询条件构建器
QueryWrapper<User> wrapper =newQueryWrapper<>();//2.设置条件
wrapper.likeLeft("user_name","zhang");/*
SELECT id,user_name,password,name,age,email
from tb_user
where user_name like ?
%zhang
*/
List<User> users = userMapper.selectList(wrapper);
System.out.println(users);}
排序查询
orderBy 、 orderByAsc 、 orderByDesc
@TestpublicvoidtestWrapper4(){//1.创建查询条件构建器
QueryWrapper<User> wrapper =newQueryWrapper<>();//2.设置条件
wrapper.eq("user_name","lisi").or().lt("age",23).in("name","李四","王五")//.orderBy(true,true,"age").orderByDesc("age");/*
select * from tb_user where user_name = ? or age < ? and name in (?,?) order by age asc
*/
List<User> users = userMapper.selectList(wrapper);
System.out.println(users);}
select:指定需要查询的字段
@TestpublicvoidtestWrapper5(){//1.创建查询条件构建器
QueryWrapper<User> wrapper =newQueryWrapper<>();//2.设置条件
wrapper.eq("user_name","lisi").or().lt("age",23).in("name","李四","王五")//.orderBy(true,true,"age").orderByDesc("age").select("id","user_name");/*
select id,user_name from tb_user where user_name = ? or age < ? and name in (?,?) order by age asc
*/
List<User> users = userMapper.selectList(wrapper);
System.out.println(users);}
分页条件查询
@TestpublicvoidtestWrapper6(){int current =1;//当前页码int size =2;//每页显示条数//1. 构建分页对象
Page<User> page =newPage<>(current,size);//2. 构建条件对象
QueryWrapper<User> wrapper =newQueryWrapper();
wrapper.lt("age",23);
userMapper.selectPage(page,wrapper);
List<User> records = page.getRecords();long total = page.getTotal();long pages = page.getPages();
System.out.println(records);
System.out.println(total);//2
System.out.println(pages);//1}
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version><relativePath/><!-- lookup parent from repository --></parent><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope><version>5.1.26</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--mybatis plus 起步依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.0</version></dependency><!--mp 代码生成器--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.0</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.30</version></dependency></dependencies>