1.条件构造器
1.1基本比较查询
| 命令 | 作用 |
|---|---|
| eq | 等于 |
| ne | 不等于 |
| gt | 大于 |
| ge | 大于等于 |
| lt | 小于 |
| le | 小于等于 |
| between | 在两个值之间 |
| notBetween | 不 在两个值之间 |
| in | 字段 IN (value.get(0), value.get(1), …) |
| on | 字段 NOT IN (v0, v1, …) |
//基本比较查询
//eq 等于 / ne 不等于
//gt 大于 / ge 大于等于
//lt 小于 /le 小于等于
//between 在两个值之间
//notBetween 不在这两个值之间
//in 字段 IN (value.get(0), value.get(1), ...)
//ontIn 字段 NOT IN (v0, v1, ...)
@Test
void testEQ(){
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.eq("password","123456")
.lt("age",23)
.in("name","李四","王五","赵六");
List<User> users = this.userMapper.selectList(wrapper);
for(User user:users){
System.out.println(user);
}
}
1.2模糊查询
| 命令 | 作用 |
|---|---|
| like | |
| notLike | |
| likeLeft | |
| likeRight |
@Test
void testWrapper(){
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.like("name","曹");
List<User> users = this.userMapper.selectList(wrapper);
for(User user:users){
System.out.println(user);
}
}
1.3排序
| 命令 | 作用 |
|---|---|
| orderBy | |
| orderByAsc | 升序 |
| orderByDesc | 降序 |
//排序
//orderBy
//orderByAsc
//orderByDesc
@Test
void testWrapper2(){
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.orderByDesc("age");
List<User> users = this.userMapper.selectList(wrapper);
for(User user:users){
System.out.println(user);
}
}
1.4逻辑查询
| 命令 | 作用 |
|---|---|
| or | |
| and |
//逻辑查询
//or
//and
@Test
void testWrapper3(){
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.eq("name","李四").or().eq("age",23);
List<User> users = this.userMapper.selectList(wrapper);
for(User user:users){
System.out.println(user);
}
}
可以通过select方法进行指定字段
//select 通过select方法进行指定字段
@Test
void testWrapper4(){
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.eq("name","李四")
.or()
.eq("age",24)
.select("id","name","age");
List<User> users = this.userMapper.selectList(wrapper);
for(User user:users){
System.out.println(user);
}
}

2.ActiveRecord
定义: ActiveRecord也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。
ActiveRecord的主要思想:
- 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段
在类中都有相应的Field; - ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;
- ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑;
2.2如何使用AR
只需要将实体对象继承Model即可
package cn.itcast.mp.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")
public class User extends Model<User> {
@TableId(type = IdType.AUTO)//设置id类型为自增
private Long id;
private String userName;
@TableField(select = false) //不加入查询字段
private String password;
private String name;
private Integer age;
@TableField(value = "email") //解决字段名不一致
private String mail;
@TableField(exist = false) //解决该字段在数据库表不存在
private String address;
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
2.3根据主键查询
//使用AR
//1.根据主键查询
@Test
void testAR(){
User user = new User();
user.setId(2L);
User user1 = user.selectById();
System.out.println(user1);
}
2.4新增数据
//2.新增数据
@Test
void testAR2(){
User user = new User();
user.setName("刘备");
user.setAge(30);
user.setPassword("123456");
user.setUserName("liubei");
user.setMail("liubei@itcast.cn");
boolean insert = user.insert();
System.out.println(insert);
}
2.5更新操作
//3.更新操作
@Test
public void testAR3(){
User user = new User();
user.setId(7L);
user.setAge(35);
boolean update = user.updateById();
System.out.println(update);
}
2.6 删除
//4.删除操作
@Test
void testAR4(){
User user =new User();
user.setId(7L);
boolean delete = user.deleteById();
System.out.println(delete);
}
2.7 根据条件查询
//5.根据条件查询
@Test
void testAR5(){
User user = new User();
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.le("age","20");
List<User> users = user.selectList(wrapper);
for(User user1:users){
System.out.println(user1);
}
}
本文详细介绍了MyBatis-Plus的条件构造器,包括基本比较查询、模糊查询、排序和逻辑查询等操作。同时,深入探讨了ActiveRecord的概念,解释了其作为ORM层的工作原理,以及如何在Java中使用ActiveRecord进行数据操作,如根据主键查询、新增、更新和删除数据。
21万+

被折叠的 条评论
为什么被折叠?



