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

MyBatis-Plus进阶

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

已采纳回答 / 老猿
刚才看了一下mp3.3.0 MetaObjectHandler类的源码。strictInsertFill和strictUpdateFill是3.3.0新增的方法,它把
setInsertFieldValByName方法标识为过期方法了,并建议用strictInsertFill替代。
setUpdateFieldValByName方法也标识为过期方法了,并建议使用strictUpdateFill替代。

讲师回答 / 老猿
       同学配置类有用啊,后面的课程中在配置类中配置了乐观锁插件,性能分析插件,sql注入器等等。你继续往下看就知道了。

讲师回答 / 老猿
目前仅从这些信息,我判断不出来错误原因,方便的话,把你的代码发到百度网盘或gitee或github上,链接给我,我帮你调试一下。

讲师回答 / 老猿
      可以自己写自定义方法查出来。你可以自己写基于xml或基于注解的查询方法,然后根据逻辑删除字段的值,查询被删除的数据。但是一般都没有这种需求。

已采纳回答 / 老猿
我把你的代码一顿改,好使了,可能是你配置的写法有问题。我把你junit的依赖去掉了,然后把
spring-boot-starter-test这个依赖排除的那段也删掉了。
我的配置类是这么写的,没重写注入sqlSessionFactory类。<...code...>数据源我也没重新注入,就是在yml中配置了。<...code...>

讲师回答 / 老猿
你数据库中的主键类型是什么?

讲师回答 / 老猿
        MP自带的CRUD操作是针对单表操作的,如果要操作多表,可以写自定义sql。        给你举个使用条件构造器的多表sql例子,可以写在xml中或注解中,下面的是用xml的写法:
&cusselect id...

讲师回答 / 老猿
同学,mybatis的拦截器用@Intercepts注解,并且要进行一些设置。你加这个注解了吗?

讲师回答 / 老猿
MP没有这个功能,得自己编程实现。有两种方式实现,一种是前端控制,前端除主键外只向后端传递值有修改的字段,mp的更新实体操作默认会对为null的属性进行忽略;第二种方式是后端查询原数据,与从前端接到的数据进行比对,然后自己写逻辑,只更新有修改的字段。

最新回答 / yq029012
已解决, update_time未使用驼峰命名实体类应该为updateTime而非updatetime

讲师回答 / 老猿
不能同时制定两个sql注入器,所以报错,你有一个办法MySqlinjector不要继承DefaultSqlInjector直接继承LogicSqlInjector就可以了,你就配置这一个sql注入器,就既能使用逻辑删除又能加入自定义方法了。

已采纳回答 / 老猿
       如果对增加了@TableLogic字段的实体,还想使用物理删除的话,你可以写自定义方法啊,在自定义方法中写物理删除语句就可以,用Mybatis的方式写自定义方法即可。       一般情况下很少有对一个表既要逻辑删除又要物理删除的需求。

讲师回答 / 老猿
       同学你好,我这边配置逻辑删除和分页插件不冲突,不知道你那的问题是怎么产生的。能说的更具体一点吗?你用的是MP的什么版本?逻辑删除和分页插件都是怎么配置的?或者方便的话,你把项目放到百度网盘上,给我个链接,我帮你定位一下原因。
课程须知
学习本课程前需要具备一定的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
提交
取消