MyBatisPlus封装SQL语句

最近对MyBatisPlus的学习又推进了一些,打算对MyBatisPlus对SQL语句的封装进行一个大概的总结。

1.selectList(null)

mapper.selectList(null);

SQL运行结果:

SELECT id,name AS title,age,create_time,update_time,version,status,deleted FROM user 

这是从user数据表中查找全部数据,并且还有一个知识点就是name AS title这个其实用到了注解:

@TableField

就是把title映射为数据库中的name字段。

2.selectList(wapper)

1.wapper是QueryWrapper()的对象。

QueryWrapper wrapper = new QueryWrapper();
Map<String,Object> map=new HashMap<>();
map.put("name","李四");
map.put("age",3);
wrapper.allEq(map);
mapper.selectList(wrapper);

SQL运行结果:

SELECT id,name AS title,age,create_time,update_time,version,status,deleted FROM user WHERE (name = ? AND age = ?) 

此时声明map对象就是为了多加几个查询条件,此时就会将name=李四,age=3的数据查询出来。

2.

 QueryWrapper wrapper = new QueryWrapper();
 wrapper.lt("age",18);
 mapper.selectList(wrapper);

SQL运行结果:

SELECT id,name AS title,age,create_time,update_time,version,status,deleted FROM user WHERE (age < ?) 

此时会将age<18的数据查出,另外gt是大于。

3.

QueryWrapper wrapper = new QueryWrapper();
wrapper.ne("name","李四");
mapper.selectList(wrapper);

SQL运行结果:

SELECT id,name AS title,age,create_time,update_time,version,status,deleted FROM user WHERE (name <> ?)

这样会把name!='李四'的数据查询出来,注意:SQL语句中的<>是不等于的意思。

4.

QueryWrapper wrapper = new QueryWrapper();
wrapper.like("name","李");
mapper.selectList(wrapper);

SQL运行结果:

SELECT id,name AS title,age,create_time,update_time,version,status,deleted FROM user WHERE (name LIKE ?)

这个是模糊查询,将name里含有“李”的数据查询出来。(只要含有就查出,“%李%”)

5.

QueryWrapper wrapper = new QueryWrapper();
wrapper.likeLeft("name","李");
mapper.selectList(wrapper);

SQL运行结果:

SELECT id,name AS title,age,create_time,update_time,version,status,deleted FROM user WHERE (name LIKE ?)

此时是以“李”作为结尾的数据进行查询。

6.

QueryWrapper wrapper = new QueryWrapper();
wrapper.inSql("id", "select id from user where id<10");
wrapper.inSql("age", "select age from user where age>3");
mapper.selectList(wrapper);

SQL运行结果:

SELECT id,name AS title,age,create_time,update_time,version,status,deleted FROM user WHERE (id IN (select id from user where id<10) AND age IN (select age from user where age>3)) 

这个其实是联合查询,须同时满足id<10,age>3这两个条件,查找到相关数据。

以上就是这次的内容,现在可能仅仅是一点儿皮毛吧(毕竟刚学没多长时间,接触的少),我会继续努力的!

奥利给!!!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis-Plus是一个基于Mybatis的增强工具,它简化了Mybatis的使用方式,提供了更加易用的API和更强大的功能。在使用Mybatis-Plus编写SQL语句时,我们可以进行一些优化来提高性能和效率。 首先,可以通过使用合适的索引来优化SQL语句。索引可以加快查询速度,减少数据库的查询时间。需要注意的是,在创建索引时,要根据实际场景和查询需求选择适当的列进行索引,避免过多或冗余的索引。 其次,可以使用合适的分页查询方式进行优化。在查询大量数据时,可以通过分页查询的方式减少返回的数据量,提高查询效率。Mybatis-Plus提供了PageHelper插件,可以方便地进行分页查询。 另外,可以通过合理的SQL语句编写和设计来优化查询性能。避免在查询语句中使用通配符进行模糊查询,因为模糊查询会增加数据库的查询负担。如果查询条件中的某个字段有固定的值,可以将其写为精确查询条件,而不是使用模糊查询。 此外,还可以对需要查询的字段进行筛选,只选择需要的字段,避免返回多余的数据,减少网络传输和查询时间。 最后,为了避免SQL注入攻击,需要使用参数绑定的方式传递参数,而不是直接拼接参数到SQL语句中。这样可以避免特殊字符对SQL语句的破坏和安全问题。 总之,通过合理使用Mybatis-Plus提供的功能和技巧,我们可以对SQL语句进行优化,提高查询性能和效率。同时,还需要根据具体业务场景和需求进行调整和优化,持续改进和优化SQL语句的编写方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值