mybatisplus基本类

目录

实体类

@TableId

@TableField

@Version

一、LambdaQueryWrapper 

LambdaQueryWrapper (方便)

QueryWrapper 

UpdateWrapper 

二、BaseMapper

增删查改操作

1、查询操作

1 selectById

2 selectList

3 selectBatchIds

4 selectByMap

5 selectOne

 2、增加操作

insert

3、 删除操作

 deleteById

deleteByMap

4、更新操作

updateById

三、IService


实体类

@TableId

主键专属

@TableId(value = "typeId",type = IdType.AUTO)
    private Long typeId;
描述注意
AUTO数据库自增
NONEMP set主键,雪花算法实现注意生成的长度否则会报错
INPUT需要开发者手动赋值没有对id进行赋值,数据库一般会采取自增id的方式处理
ASSIGN_ID
ASSIGN_UUID要求主键类型必须是String类型,会自动生成UUID进行赋值

@TableField

非主键字段使用

public class User{
    private Integer id;
    @TableField(value = "name")
    private String UserName;
    @TableField(exist = false)
    private Integer gender;
    @Version
    private Integer version;  
}

value:映射非主键字段 value映射字段名

exist:表示是否为数据库字段,false表示非数据库字段,查询时不会报错

select 表示是否查询该字段,false表示不查询该字段,返回null

@Version

标记乐观锁 -主修改操作

一、LambdaQueryWrapper 

https://blog.csdn.net/weixin_43841924/article/details/125736206

1、servie 层和实现类要集成mybatisPlus的

service 继承IService<>

public interface OpLogService extends IService<OpLog> {

实现类中要继承IService的实现类ServiceImpl<mapper,实体类>

@Service
public class OpLogServiceImpl extends ServiceImpl<OpLogMapper, OpLog> implements OpLogService {

2、如果你想要mapper中的一些方法的话,mapper 要继承BaseMapper<实体类>

public interface OpLogMapper extends BaseMapper<OpLog> {

3、常用的方法

LambdaQueryWrapper (方便)

1)、分页 Page

/*参数1是分页起始位置,一般是1,参数2:结束位置,一般都是前端传过来的,查询的数量*/
Page<LandLossAllowance> page1 = new Page<LandLossAllowance>(参数1,参数2);
LambdaQueryWrapper<LandLossAllowance> queryWrapper = new LambdaQueryWrapper<>();

/*
*条件 eq 指的是相等
*/
queryWrapper.eq(实体类::属性,值);
....

/*执行page方法 page(参数1,参数2)
   * 参数1:上面的new的分页对象,参数2是lambda表达式查询条件*/
IPage<LandLossAllowance> iPage = page(page1, queryWrapper);

2)、常用的lambda表达式的一些定义

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KCi6KCi5qyy5Yqo55qE54yr,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center

QueryWrapper 

select(String… sqlSelect); // 用于定义需要返回的字段。

例: select(“id”, “name”, “age”) —> select id, name, age

select(Predicate predicate); // ​​ ​Lambda​​​ 表达式,过滤需要的字段。

lambda(); // 返回一个 LambdaQueryWrapper

private List<HwSecuritiesInfo> query(QueryParam param) {

        QueryWrapper<HwSecuritiesInfo> wrapper = new QueryWrapper<>();

        wrapper.lambda().gt(HwSecuritiesInfo::getId, param.getJsid())

                .orderByAsc(HwSecuritiesInfo::getId);

        wrapper.lambda().select(HwSecuritiesInfo::getId, HwSecuritiesInfo::getBusinessId, HwSecuritiesInfo::getCompanyCode);

        wrapper.last("limit " + param.getCount());

        return hwSecuritiesInfoService.list(wrapper);

UpdateWrapper 

set(String column, Object val); // 用于设置 set 字段值。

例: set(“name”, null) —> set name = null

etSql(String sql); // 用于设置 set 字段值。

例: setSql(“name = ‘老公’”) —> set name = ‘老公’

lambda(); // 返回一个 LambdaUpdateWrapper

public List<GelonghuiNews> selectGelonghuiNews(Long lastId) {

        QueryWrapper<GelonghuiNews> wrapper = new QueryWrapper<>();

        if (null == lastId) {

        wrapper.lambda().gt(GelonghuiNews::getJsid, lastId).eq(GelonghuiNews::getImageStatus,OssImageStatus.YES.getStatus());

        return super.baseMapper.selectList(wrapper);

二、BaseMapper

public interface OpLogMapper extends BaseMapper<OpLog> {
     @Insert("insert into dedmo_user(id,name) values(null,#{name})")
        void insertUser(User user);
     @update("update dedmo_user set name = #{newName} where name = #{oldName}")
        void updateUser(String newName,String oldName);
}

增删查改操作

1、查询操作

1 selectById

查询id为1的用户信息

BaseMapper.selectById(1)

2 selectList

查询全部的用户信息

BaseMapper.selectList(null)

判断queryWrapper条件是否为空

 QueryWrapper queryWrapper=new QueryWrapper();
        queryWrapper.eq("name",adminName);
List<Student> list = studentMapper.selectList(queryWrapper);

3 selectBatchIds

查询id为1和3的用户信息

BaseMapper.selectBatchIds(Arrays.asList(1,3));

4 selectByMap

需求:查询name为yixin,并且年龄为18岁的用户信息。

 HashMap<String ,Object> map=new HashMap<>();
        map.put("name","yixin");
        map.put("age",18);
BaseMapper.selectByMap(map);

5 selectOne

结合queryMapper

  LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper();
          queryWrapper.eq("name",adminName);
  studentMapper.selectOne(queryWrapper);

 2、增加操作

insert

需求:插入用户的信息如下

 Person person =new Person();
      person.setName("张三");
      person.setAge(21);
      person.setEmail("test6@qq.com");
BaseMapper.insert(person);

3、 删除操作

 deleteById

需求:删除id为5的用户信息。

BaseMapper.deleteById(5);

deleteByMap

需求:删除姓名为 Sandy,并且年龄为21的用户信息

 HashMap<String, Object> map=new HashMap<>();
        map.put("name","Sandy");
        map.put("age",21);
BaseMapper..deleteByMap(map);

4、更新操作

updateById

需求:将id为2的用户的姓名更改为"一心同学"

 Person person =new Person();
        person.setId(2L);
        person.setName("一心同学");
        person.setAge(20);
        person.setEmail("test2@qq.com");
BaseMapper.updateById(person);

三、IService

  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`BaseMapper.selectPage` 方法使用了 MyBatis-Plus 的物理分页功能,可以实现数据库的分页查询。 在使用 `selectPage` 方法时,你需要传入一个 `Page` 对象作为参数,该对象包含了分页的相关信息,如当前页码、每页数量等。同时,你也可以传入查询条件等其他参数。 以下是一个示例: ```java Page<User> page = new Page<>(1, 10); // 当前页码为1,每页数量为10 QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("status", 1); // 添加查询条件,示例中查询状态为1的用户 IPage<User> userPage = userMapper.selectPage(page, queryWrapper); List<User> userList = userPage.getRecords(); // 获取当前页的数据列表 long total = userPage.getTotal(); // 获取总记录数 long current = userPage.getCurrent(); // 获取当前页码 long size = userPage.getSize(); // 获取每页数量 // 其他相关操作... ``` 在上述示例中,我们创建了一个 `Page<User>` 对象,指定了当前页码和每页数量。然后,我们创建了一个 `QueryWrapper<User>` 对象,用于添加查询条件。最后,我们调用 `userMapper.selectPage(page, queryWrapper)` 方法进行分页查询。 返回的是一个 `IPage<User>` 对象,你可以从中获取当前页的数据列表、总记录数、当前页码、每页数量等信息。 需要注意的是,`selectPage` 方法会自动根据数据库方言生成对应的分页 SQL 语句,并执行查询操作。你无需手动编写分页的 SQL 语句,MyBatis-Plus 会自动处理分页逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值