为了账号安全,请及时绑定邮箱和手机立即绑定

MyBatis-Plus进阶

难度高级
时长 2小时10分
学习人数
综合评分9.73
27人评价 查看评价
10.0 内容实用
9.3 简洁易懂
9.9 逻辑清晰

讲师回答 / 老猿
同学,你好,你配置动态表名解析器了吗?如果配置了,你ITableNameHandler实现类中的dynamicTableName抽象方法的返回值,是你要替换的的表名吗?如果返回值为null不替换。

讲师回答 / 老猿
       同学,可以实现批量逻辑删除啊,首先你的实体中要有使用注解@TableLogic标识的字段,然后你调用BaseMapper中的如下方法,如果符合条件的行数大于一个,就是批量逻辑删除。<...code...>

讲师回答 / 老猿
       多表联查可以既使用xml或@select注解的方式写sql,然后还能使用MP的条件构造器,实现方式如下:       MP自带的CRUD操作是针对单表操作的,如果要操作多表,可以写自定义sql。给你举个...

讲师回答 / 老猿
setInsertFieldValByName有替代的方法,替代的方法为strictInsertFill

讲师回答 / 老猿
你需要设置workspace的字符集为“UTF-8”。如果不会设置,在百度中搜索eclipse设置workspace字符集,有很多文章会告诉你怎么设置。如果设置完不生效,重启一下eclipse。

讲师回答 / 老猿
      多表联查可以既使用xml或@select注解的方式写sql,然后还能使用MP的条件构造器,这种方式,我个人认为挺优雅的。给你举个例子:       MP自带的CRUD操作是针对单表操作的,如果要操作多...

已采纳回答 / 老猿
逻辑删除字段,应该不能配置成你说的那样。你可以看讲的8-3中的一个选装件,你可以在删除的时候,自动填充一下其他字段,其他字段是时间戳类型即可。

讲师回答 / 老猿
在insertFill方法中使用strictInsertFill方法实现自动填充,在updateFill方法中strictUpdateFill方法实现自动填充。按我说的试试,看看好不好使。

讲师回答 / 老猿
同学,你使用的是3.1.2,你看你截的第一幅图,“modulelist=”这行,你用的是3.2.1以上使用的那个,你应该把这行注释掉,用那个3.2.1以下使用的那个,把那个被注释的取消注释。

讲师回答 / 老猿
TenantSchemaHandler这个我也没用过,不知道你那是什么原因不生效,我只是使用过TenantHandler。你可以加入他们的官方群,询问一下作者,或者在github/gitee上提问。

讲师回答 / 老猿
如果你的TenantId为null的话,不会进行过滤。你登录后,获取到company_id可以存储到session中或者其他该用户能获取到其他用户不能获取的地方。然后在多租户的getTenantId方法中取出来包装成Expression对象返回即可。这样就实现了登录查询是不过滤,其他方法过滤。

讲师回答 / 老猿
同学,你使用3.3.1.tmp版本试试,看看好不好使,我使用这个版本,debug时,看着调用的是BeanWrapper。

讲师回答 / 老猿
       按照我看到过的文章,说sql是从右向左解析的,能够排除最大量数据的条件应该放在最右面。你那句明显应该是user_id = ?这个条件过滤掉的数据最多。单单从这条语句来说,deleted=0放在最前面是对的。但是其他情况则不一定,我目前了解的mp,这个逻辑删除字段的位置还不能修改,你可以去MP官方群里咨询一下作者,看看能否解决。或者在github或gitee上提问。

讲师回答 / 老猿
      按我目前的实践来看,使用了mp提供的参数中包含实体类的插入或更新方法,如果你实现了自动填充功能,就会触发MetaObjectHandler中的相应方法,你可以参考我视频里讲的,在MetaObjectHandler中的相应方法中,某些场景下如果不需要执行方法中的业务逻辑是如何忽略的。

讲师回答 / 老猿
      你用的MP是什么版本,在3.2.0以上已经移除性能分析插件,推荐使用第三方的,我在课程中也讲解了第三方的。      如果你还想用这个,那么你可以按照官方教程配置,教程地址:https://mybatis.plus/guide/performance-analysis-plugin.html,然后在在vm-options中输入-Dspring.profiles.active=你激活性能分析插件的环境,例如:-Dspring.profiles.active=test。如果仍然有问题,再反馈给我。
课程须知
学习本课程前需要具备一定的MyBatis-Plus基础,并熟悉Lambda表达式和SpringBoot。建议先学习《MyBatis-Plus入门》课程,链接在此:https://www.imooc.com/learn/1130。
老师告诉你能学到什么?
1、掌握MP逻辑删除实现 2、掌握MP自动填充实现 3、掌握MP乐观锁实现 4、掌握MP性能分析 5、掌握MP多租户实现 6、掌握MP动态表 7、掌握MP的SQL注入器

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消