MyBatis Plus使用
MyBatis-Plus 内置CURD
package com.baomidou.mybatisplus.samples.crud; import static org.assertj.core.api.Assertions.assertThat; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.samples.crud.entity.User; import com.baomidou.mybatisplus.samples.crud.mapper.UserMapper; /** * <p> * 内置 CRUD 演示 * </p> * * @author hubin * @since 2018-08-11 */ @RunWith(SpringRunner.class) @SpringBootTest public class SampleTest { @Resource private UserMapper mapper; @Test public void aInsert() { User user = new User(); user.setName("小羊"); user.setAge(3); user.setEmail("abc@mp.com"); assertThat(mapper.insert(user)).isGreaterThan(0); // 成功直接拿会写的 ID assertThat(user.getId()).isNotNull(); } @Test public void bDelete() { assertThat(mapper.deleteById(3L)).isGreaterThan(0); assertThat(mapper.delete(new QueryWrapper<User>() .lambda().eq(User::getName, "Sandy"))).isGreaterThan(0); } @Test public void cUpdate() { assertThat(mapper.updateById(new User().setId(1L).setEmail("ab@c.c"))).isGreaterThan(0); assertThat( mapper.update( new User().setName("mp"), Wrappers.<User>lambdaUpdate() .set(User::getAge, 3) .eq(User::getId, 2) ) ).isGreaterThan(0); User user = mapper.selectById(2); assertThat(user.getAge()).isEqualTo(3); assertThat(user.getName()).isEqualTo("mp"); mapper.update( null, Wrappers.<User>lambdaUpdate().set(User::getEmail, null).eq(User::getId, 2) ); assertThat(mapper.selectById(1).getEmail()).isEqualTo("ab@c.c"); user = mapper.selectById(2); assertThat(user.getEmail()).isNull(); assertThat(user.getName()).isEqualTo("mp"); mapper.update( new User().setEmail("miemie@baomidou.com"), new QueryWrapper<User>() .lambda().eq(User::getId, 2) ); user = mapper.selectById(2); assertThat(user.getEmail()).isEqualTo("miemie@baomidou.com"); mapper.update( new User().setEmail("miemie2@baomidou.com"), Wrappers.<User>lambdaUpdate() .set(User::getAge, null) .eq(User::getId, 2) ); user = mapper.selectById(2); assertThat(user.getEmail()).isEqualTo("miemie2@baomidou.com"); assertThat(user.getAge()).isNull(); } @Test public void dSelect() { mapper.insert( new User().setId(10086L) .setName("miemie") .setEmail("miemie@baomidou.com") .setAge(3)); assertThat(mapper.selectById(10086L).getEmail()).isEqualTo("miemie@baomidou.com"); User user = mapper.selectOne(new QueryWrapper<User>().lambda().eq(User::getId, 10086)); assertThat(user.getName()).isEqualTo("miemie"); assertThat(user.getAge()).isEqualTo(3); mapper.selectList(Wrappers.<User>lambdaQuery().select(User::getId)) .forEach(x -> { assertThat(x.getId()).isNotNull(); assertThat(x.getEmail()).isNull(); assertThat(x.getName()).isNull(); assertThat(x.getAge()).isNull(); }); mapper.selectList(new QueryWrapper<User>().select("id","name")) .forEach(x -> { assertThat(x.getId()).isNotNull(); assertThat(x.getEmail()).isNull(); assertThat(x.getName()).isNotNull(); assertThat(x.getAge()).isNull(); }); } @Test public void orderBy() { List<User> users = mapper.selectList(Wrappers.<User>query().orderByAsc("age")); assertThat(users).isNotEmpty(); } @Test public void selectMaps() { List<Map<String, Object>> mapList = mapper.selectMaps(Wrappers.<User>query().orderByAsc("age")); assertThat(mapList).isNotEmpty(); assertThat(mapList.get(0)).isNotEmpty(); System.out.println(mapList.get(0)); } @Test public void selectMapsPage() { IPage<Map<String, Object>> page = mapper.selectMapsPage(new Page<>(1, 5), Wrappers.<User>query().orderByAsc("age")); assertThat(page).isNotNull(); assertThat(page.getRecords()).isNotEmpty(); assertThat(page.getRecords().get(0)).isNotEmpty(); System.out.println(page.getRecords().get(0)); } @Test public void orderByLambda() { List<User> users = mapper.selectList(Wrappers.<User>lambdaQuery().orderByAsc(User::getAge)); assertThat(users).isNotEmpty(); } @Test public void testSelectMaxId() { QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.select("max(id) as id"); User user = mapper.selectOne(wrapper); System.out.println("maxId=" + user.getId()); List<User> users = mapper.selectList(Wrappers.<User>lambdaQuery().orderByDesc(User::getId)); Assert.assertEquals(user.getId().longValue(), users.get(0).getId().longValue()); } }
package com.baomidou.mybatisplus.samples.wrapper; import java.util.List; import javax.annotation.Resource; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.util.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.samples.wrapper.entity.User; import com.baomidou.mybatisplus.samples.wrapper.mapper.RoleMapper; import com.baomidou.mybatisplus.samples.wrapper.mapper.UserMapper; /** * @author miemie * @since 2018-08-10 */ @RunWith(SpringRunner.class) @SpringBootTest public class WrapperTest { @Resource private UserMapper userMapper; @Resource private RoleMapper roleMapper; @Test public void tests() { System.out.println("----- 普通查询 ------"); List<User> plainUsers = userMapper.selectList(new QueryWrapper<User>().eq("role_id", 2L)); List<User> lambdaUsers = userMapper.selectList(new QueryWrapper<User>().lambda().eq(User::getRoleId, 2L)); Assert.assertEquals(plainUsers.size(), lambdaUsers.size()); print(plainUsers); System.out.println("----- 带子查询(sql注入) ------"); List<User> plainUsers2 = userMapper.selectList(new QueryWrapper<User>() .inSql("role_id", "select id from role where id = 2")); List<User> lambdaUsers2 = userMapper.selectList(new QueryWrapper<User>().lambda() .inSql(User::getRoleId, "select id from role where id = 2")); Assert.assertEquals(plainUsers2.size(), lambdaUsers2.size()); print(plainUsers2); System.out.println("----- 带嵌套查询 ------"); List<User> plainUsers3 = userMapper.selectList(new QueryWrapper<User>() .nested(i -> i.eq("role_id", 2L).or().eq("role_id", 3L)) .and(i -> i.ge("age", 20))); List<User> lambdaUsers3 = userMapper.selectList(new QueryWrapper<User>().lambda() .nested(i -> i.eq(User::getRoleId, 2L).or().eq(User::getRoleId, 3L)) .and(i -> i.ge(User::getAge, 20))); Assert.assertEquals(plainUsers3.size(), lambdaUsers3.size()); print(plainUsers3); System.out.println("----- 自定义(sql注入) ------"); List<User> plainUsers4 = userMapper.selectList(new QueryWrapper<User>() .apply("role_id = 2")); print(plainUsers4); UpdateWrapper<User> uw = new UpdateWrapper<>(); uw.set("email", null); uw.eq("id",4); userMapper.update(new User(), uw); User u4 = userMapper.selectById(4); Assert.assertNull(u4.getEmail()); } @Test public void lambdaQueryWrapper(){ System.out.println("----- 普通查询 ------"); List<User> plainUsers = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getRoleId, 2L)); List<User> lambdaUsers = userMapper.selectList(new QueryWrapper<User>().lambda().eq(User::getRoleId, 2L)); Assert.assertEquals(plainUsers.size(), lambdaUsers.size()); print(plainUsers); System.out.println("----- 带子查询(sql注入) ------"); List<User> plainUsers2 = userMapper.selectList(new LambdaQueryWrapper<User>() .inSql(User::getRoleId, "select id from role where id = 2")); List<User> lambdaUsers2 = userMapper.selectList(new QueryWrapper<User>().lambda() .inSql(User::getRoleId, "select id from role where id = 2")); Assert.assertEquals(plainUsers2.size(), lambdaUsers2.size()); print(plainUsers2); System.out.println("----- 带嵌套查询 ------"); List<User> plainUsers3 = userMapper.selectList(new LambdaQueryWrapper<User>() .nested(i -> i.eq(User::getRoleId, 2L).or().eq(User::getRoleId, 3L)) .and(i -> i.ge(User::getAge, 20))); List<User> lambdaUsers3 = userMapper.selectList(new QueryWrapper<User>().lambda() .nested(i -> i.eq(User::getRoleId, 2L).or().eq(User::getRoleId, 3L)) .and(i -> i.ge(User::getAge, 20))); Assert.assertEquals(plainUsers3.size(), lambdaUsers3.size()); print(plainUsers3); System.out.println("----- 自定义(sql注入) ------"); List<User> plainUsers4 = userMapper.selectList(new QueryWrapper<User>() .apply("role_id = 2")); print(plainUsers4); UpdateWrapper<User> uw = new UpdateWrapper<>(); uw.set("email", null); uw.eq("id",4); userMapper.update(new User(), uw); User u4 = userMapper.selectById(4); Assert.assertNull(u4.getEmail()); } private <T> void print(List<T> list) { if (!CollectionUtils.isEmpty(list)) { list.forEach(System.out::println); } } }

浙公网安备 33010602011771号