本文共 4351 字,大约阅读时间需要 14 分钟。
本文使用了两个主要表:user
和 role
。具体字段定义如下:
user
表:
NULL
。NULL
。NULL
。role
表的 id
。role
表:
NULL
。NULL
。本文将通过五个基本的CRUD操作(插入、删除、更新、查询、排序)展示数据库操作的实现过程。
@PostMapping("/test1")public void aInsert() { // 准备参数:插入用户信息 User user = new User(); user.setName("小羊"); user.setAge(3); user.setEmail("abc@mp.com"); // 执行插入操作 int a = userMapper.insert(user); System.out.println("插入返回:" + a); System.err.println("插入成功 ID 为:" + user.getId());}
User
实体类创建用户对象,并设置相关字段值。userMapper.insert(user)
执行插入操作,返回插入的记录数。@PostMapping("/test2")public void bDelete() { // 删除用户 int a = userMapper.deleteById(18); // 使用 QueryWrapper 定义条件删除 int b = userMapper.delete(new QueryWrapper() .lambda().eq(User::getName, "fr")); System.out.println("删除返回:" + a + " 删除返回:" + b);}
.deleteById
方法,通过 id
删除用户。QueryWrapper
和 lambda()
方法,通过 name
条件删除用户。@PostMapping("/test3")public void cUpdate() { // 更新用户邮箱 userMapper.updateById(new User().setId(1L).setEmail("ab@c.c")); // 更新用户姓名和年龄 userMapper.update(new User().setName("mp"), new UpdateWrapper() .set(User::getAge, 3) .eq(User::getId, 1L));}
updateById
方法,仅更新 email
字段。update
方法,通过 name
和 age
条件更新用户信息。@PostMapping("/test4")public void dSelect() { // 查询用户信息 User user = userMapper.selectById(1L); // 使用 QueryWrapper 查询用户 User user2 = userMapper.selectOne(new QueryWrapper() .lambda().eq(User::getId, 1L)); System.out.println("name:" + user.getName() + " age:" + user.getAge() + " email:" + user.getEmail());}
selectById
方法,通过 id
查询单个用户。selectOne
方法,通过 id
条件查询单个用户。@PostMapping("/test5")public void orderBy() { QueryWrapperew = new QueryWrapper (); ew.orderByAsc("age"); List userList = userMapper.selectList(ew); userList.forEach(System.out::println);}
orderByAsc
方法对 age
字段进行升序排序。本文将展示条件构造器的使用方法,包括普通查询、SQL注入和嵌套查询等。
@PostMapping("test1")public void tests() { // 普通查询 ListplainUsers = userMapper.selectList(new QueryWrapper () .eq("role_id", 2L)); // Lambda 查询 List lambdaUsers = userMapper.selectList(new QueryWrapper () .lambda().eq(User::getRoleId, 2L)); Assert.assertEquals(plainUsers.size(), lambdaUsers.size()); print(plainUsers);}
// 带子查询ListplainUsers2 = userMapper.selectList(new QueryWrapper () .inSql("role_id", "select id from role where id = 2"));List lambdaUsers2 = userMapper.selectList(new QueryWrapper () .lambda().inSql(User::getRoleId, "select id from role where id = 2"));
ListplainUsers3 = userMapper.selectList(new QueryWrapper () .nested(i -> i.eq("role_id", 2L).or().eq("role_id", 3L)) .and(i -> i.ge("age", 20)));List lambdaUsers3 = userMapper.selectList(new QueryWrapper () .lambda().nested(i -> i.eq(User::getRoleId, 2L).or().eq(User::getRoleId, 3L)) .and(i -> i.ge(User::getAge, 20)));
ListplainUsers4 = userMapper.selectList(new QueryWrapper () .apply("role_id = 2"));
// 更新用户信息UpdateWrapperuw = new UpdateWrapper ();uw.set("email", null);uw.eq("id", 4);userMapper.update(new User(), uw);User u4 = userMapper.selectById(4);Assert.assertNull(u4.getEmail());
通过以上示例,可以看到如何在实际项目中使用 CRUD 操作和条件构造器来实现数据库的增删改查功能。
转载地址:http://yfffk.baihongyu.com/