在mybatis plus中,经常需要根据条件进行查询,但是有时候并不需要查询所有的字段,只需要查询某几列。这时候可以使用wrapper的select方法来实现。下面我将详细介绍如何使用wrapper来查询某几列,不查询某几列。
1. 基本用法
需要创建一个实体类,例如user,然后创建一个对应的mapper接口,例如usermapper。接着,可以在service层或者controller层使用wrapper来进行查询。
@service public class userservice { @autowired private usermapper usermapper; public list<user> selectcolumns(wrapper<user> wrapper) { return usermapper.selectlist(wrapper); } }
在上面的代码中,定义了一个selectcolumns方法,该方法接收一个wrapper参数,然后调用usermapper的selectlist方法进行查询。
2. 查询某几列
如果想要查询user实体中的name和age字段,可以这样写:
wrapper<user> wrapper = new querywrapper<>(); wrapper.select("name", "age"); list<user> users = userservice.selectcolumns(wrapper);
在上面的代码中,创建了一个querywrapper对象,然后调用select方法传入要查询的字段名,最后调用userservice的selectcolumns方法进行查询。
3. 不查询某几列
如果不想查询user实体中的id字段,可以这样写:
wrapper<user> wrapper = new querywrapper<>(); wrapper.select(user.class, i->!i.getcolumn().equals("id")); list<user> users = userservice.selectcolumns(wrapper);
在上面的代码中,创建了一个querywrapper对象,然后调用select方法传入要查询的字段名,接着调用notselect方法传入不想查询的字段名,最后调用userservice的selectcolumns方法进行查询。
4. mybatis-plus只查询部分字段的两种方法
方法1:只需要查询出name和phone两个字段:使用querywrapper的select()方法指定要查询的字段
@test public void selectbywrapper1() { querywrapper<user> querywrapper = new querywrapper<>(); querywrapper.select("name", "phone").eq("age",25); list<user> users = usermapper.selectlist(querywrapper); users.foreach(system.out::println); }
方法2:查询出除age和address外其它所有字段的数据:同样使用querywrapper的select()方法
@test public void selectbywrapper2() { querywrapper<user> querywrapper = new querywrapper<>(); querywrapper.select(user.class, info -> !info.getcolumn().equals("age") && !info.getcolumn().equals("address")).eq("name","jack"); list<user> users = usermapper.selectlist(querywrapper); users.foreach(system.out::println); }
到此这篇关于mybatis plus wrapper查询某几列的方法实现的文章就介绍到这了,更多相关mybatis plus wrapper查询某几列内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论