MyBatisPlus快速入门实战

1.首先
安装

// 引入MyBatis-Plus的依赖
// 在pom.xml中添加以下依赖

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>{version}</version>
</dependency>

// 创建一个实体类
@Data
public class User {
private Long id;
private String name;
private Integer age;
}

// 创建一个Mapper接口
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

// 在application.yml中配置MyBatis-Plus的相关配置
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
type-aliases-package: com.example.entity

// 在Spring Boot的启动类中添加Mapper扫描注解
@MapperScan("com.example.mapper")
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}

// 进行增删改查操作的服务类
@Service
public class UserService {
@Autowired
private UserMapper userMapper;

// 查询所有用户
public List<User> getAllUsers() {
return userMapper.selectList(null);
}

// 根据ID查询用户
public User getUserById(Long id) {
return userMapper.selectById(id);
}

// 新增用户
public void addUser(User user) {
userMapper.insert(user);
}

// 删除用户
public void deleteUser(Long id) {
userMapper.deleteById(id);
}

// 更新用户信息
public void updateUser(User user) {
userMapper.updateById(user);
}
}

以上示例展示了如何使用MyBatis-Plus进行基本的增删改查操作。

首先,需要引入MyBatis-Plus的依赖,并创建一个实体类。

然后,创建一个Mapper接口,继承MyBatis-Plus提供的BaseMapper接口,以便拥有基本的增删改查方法。

在Spring Boot的启动类中,需要添加Mapper扫描注解来自动扫描Mapper接口。

最后,在服务类中注入UserMapper,并编写具体的增删改查方法。

通过这些方法,可以对数据库中的用户表进行操作。

下面是AbstractWrapper

allEq

全部eq(或个别isNull)

allEq(Map<R, V> params)
allEq(Map<R, V> params, boolean null2IsNull)
allEq(boolean condition, Map<R, V> params, boolean null2IsNull)

eq 等于 =
eq(R column, Object val)
eq(boolean condition, R column, Object val)

ne 不等于 <>
ne(R column, Object val)
ne(boolean condition, R column, Object val)

gt大于 >
gt(R column, Object val)
gt(boolean condition, R column, Object val)

ge
大于等于 >=
ge(R column, Object val)
ge(boolean condition, R column, Object val)

lt 小于 <
lt(R column, Object val)
lt(boolean condition, R column, Object val)

le  小于等于 <=
le(R column, Object val)
le(boolean condition, R column, Object val)

between BETWEEN1 AND2
between(R column, Object val1, Object val2)
between(boolean condition, R column, Object val1, Object val2)

notBetween NOT BETWEEN1 AND2
notBetween(R column, Object val1, Object val2)
notBetween(boolean condition, R column, Object val1, Object val2)

like LIKE '%值%'
like(R column, Object val)
like(boolean condition, R column, Object val)

notLike
NOT LIKE '%值%': notLike("name", "王")--->name not like '%王%'

likeLeft
LIKE '%值': likeLeft("name", "王")--->name like '%王'

likeRight
LIKE '值%': likeRight("name", "王")--->name like '王%'

notLikeLeft
NOT LIKE '%值': notLikeLeft("name", "王")--->name not like '%王'

notLikeRight
NOT LIKE '值%': notLikeRight("name", "王")--->name not like '王%'

isNull
字段 IS NULL: isNull("name")--->name is null

isNotNull
字段 IS NOT NULL: isNotNull("name")--->name is not null

in
字段 IN (value.get(0), value.get(1), ...): in("age",{1,2,3})--->age in (1,2,3)

notIn
字段 NOT IN (value.get(0), value.get(1), ...): notIn("age",{1,2,3})--->age not in (1,2,3)

inSql
字段 IN ( sql语句 ): inSql("age", "1,2,3,4,5,6")--->age in (1,2,3,4,5,6): inSql("id", "select id from table where id < 3")--->id in (select id from table where id < 3)

notInSql
字段 NOT IN ( sql语句 ): notInSql("age", "1,2,3,4,5,6")--->age not in (1,2,3,4,5,6): notInSql("id", "select id from table where id < 3")--->id not in (select id from table where id < 3)

groupBy
分组:GROUP BY 字段, ...: groupBy("id", "name")--->group by id,name

orderByAsc
orderByAsc(R... columns)
orderByAsc(boolean condition, R... columns)
排序:ORDER BY 字段, ... ASC: orderByAsc("id", "name")--->order by id ASC,name ASC

orderByDesc
排序:ORDER BY 字段, ... DESC: orderByDesc("id", "name")--->order by id DESC,name DESC

orderBy
排序:ORDER BY 字段, ...: orderBy(true, true, "id", "name")--->order by id ASC,name ASC

having
HAVING ( sql语句 ): having("sum(age) > 10")--->having sum(age) > 10: having("sum(age) > {0}", 11)--->having sum(age) > 11

func
func 方法(主要方便在出现if...else下调用不同方法能不断链): func(i -> if(true) {i.eq("id", 1)} else {i.ne("id", 1)})

or
or()
or(boolean condition)
拼接 OR: eq("id",1).or().eq("name","老王")--->id = 1 or name = '老王'
or(Consumer<Param> consumer)
or(boolean condition, Consumer<Param> consumer)
OR 嵌套
例: or(i -> i.eq("name", "李白").ne("status", "活着"))--->or (name = '李白' and status <> '活着')

and
AND 嵌套
例: and(i -> i.eq("name", "李白").ne("status", "活着"))--->and (name = '李白' and status <> '活着')

nested
正常嵌套 不带 AND 或者 OR: nested(i -> i.eq("name", "李白").ne("status", "活着"))--->(name = '李白' and status <> '活着')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YULIU_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值