DEV Community

loading...

MBP02 Basic select queries in Mybatis-plus

Jihao
We live on the earth, but our dreams are beyond the sky.
・1 min read

Mapper中的基本查询

Continue to use the database table and entity class created in the last blog:

create table users (
  id integer primary key not null auto_increment,
  username varchar(50) not null,
  password varchar(100) not null,
  question varchar(150),
  answer varchar(50)
);
Enter fullscreen mode Exit fullscreen mode
@TableName(value = "users")
public class AppUser {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private String username;
    private String password;
    private String question;
    private String answer;
}
Enter fullscreen mode Exit fullscreen mode
public interface AppUserMapper extends BaseMapper<AppUser> {
}
Enter fullscreen mode Exit fullscreen mode

selectById 与 selectBatchIds

AppUser appUser = appUserMapper.selectById(2);
Enter fullscreen mode Exit fullscreen mode
List<Integer> ids = new ArrayList<>();
ids.add(1);
ids.add(2);
ids.add(3);
List<AppUser> users = appUserMapper.selectBatchIds(ids);
Enter fullscreen mode Exit fullscreen mode

通过Map - selectByMap

通过Map来封装查询条件,map中写的是数据表中的列名,而非实体类的属性名。

Map<String,Object> columnMap = new HashMap<>();
columnMap.put("username", "jisu");
columnMap.put("question", "What is my name?");
List<UserInfo> users = userInfoMapper.selectByMap(columnMap);
Enter fullscreen mode Exit fullscreen mode

使用QueryWrapper

QueryWrapper是一个查询构造器,相当于Where条件。

QueryWrapper<AppUser> queryWrapper = new QueryWrapper<>();
queryWrapper.like("username","ha").like("question", "What");
Enter fullscreen mode Exit fullscreen mode

QueryWrapper的方法见下表:

method name note example
eq = eq("name", "wong")
ne != ne("name", "wong")
gt > gt("age", 18)
ge >=
lt <
le <=
or OR 紧接着的下一个方法不是用ADD连接eq("id", 1).or().eq(age, 18)
between
notBetween
like
notLike
likeLeft
likeRight
inSql
notInSql
groupBy
orderByAsc
orderByDesc

Discussion (0)

Forem Open with the Forem app