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

MyBatis-Plus入门

难度高级
时长 4小时 0分
学习人数
综合评分9.57
101人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.6 逻辑清晰

讲师回答 / 老猿
       从你的这个需求上看,如果没有单独的作业service、controller,动作的发起者是老师,一般可以写在teacher对应的service中,在teacherService中注入studentMapper,作业Mapper,单独写一个方法实现老师收取学生作业,最后可以在teacheController中调用这个方法。如果单独写作业的service、controller,那么老师收取学生作业这个方法的业务逻辑可以写在作业service中,然后作业controller中暴露给外界。

讲师回答 / 老猿
这个应该是无法去掉括号的,据我了解,有的版本加括号,有的版本不带括号,这个括号自己控制不了。这样加括号,从上面的sql语句看,加括号不影响你的结果,和不加括号的结果是一样的。

讲师回答 / 老猿
有可能是版本不一样,你使用的Mybatis-Plus是什么版本的?

讲师回答 / 老猿
请问在启动类上加MapperScan注解了吗,并且注解的路径配置的正确吗?

讲师回答 / 老猿
楼上的朋友说的对,可以用updateWrapper.setSql("字段 = 字段 +1")这种写法实现;

讲师回答 / 老猿
你好,同学,我个人认为:1、使用通用service的话,简单的逻辑可以写在controller中,例如就是前台传个id,你进行删除,或者查询返回给前端,你直接调用通用service的方法就可以了,不用在service层再写一遍方法。2、如果是复杂的逻辑,建议是写在service层里,你自己写实现方法即可。而且你的service不是继承mp的通用service吗,就一层service啊,不用再套一层service。

讲师回答 / 老猿
你好,UserService上增加@Service注解了吗?

讲师回答 / 老猿
我也不太明白你想要的东西是什么,自定义方法使用xml方式或者注解方式都可以。还是说,你想在service层,把mapper层的方法封装一下?

讲师回答 / 老猿
同学,你使用的MP是什么版本?selectList这个方法是直接使用的BaseMapper中的,还是自定义的,目前这么看,我看不出问题,方便把代码发到github或者gitee上,我帮你调试一下。

讲师回答 / 老猿
mp执行的sql有的版本有这个括号,有的版本没有,但这个括号应该不影响最终结果,有没有查询出的结果集都一样,你可以试试。

讲师回答 / 老猿
       MP的条件构造器可以实现类似于if这种动态sql,例如条件构造器的eq,ne, like等方法,都有一个两个参数的和三个参数的重载方法,三个参数的那类方法。第一个参数是一个boolean类型的值,就是用来做条件判断的,判断该句是否最终加入到sql中,为true就加入,为false就不加人。我在课程中有讲。

讲师回答 / 老猿
问题解决了就好。一般是要添加如下配置,不然有的ide不会将写在src/main/java中的xml文件编译或打包到编译后的程序或者包中。<...code...>

讲师回答 / 老猿
你可以在实体类上使用TableName注解,强制指定表名即可。

讲师回答 / 老猿
两个表连表查询的话,使用LambdaQueryWrapper可能会有问题,如果两个表中有同名字段,LambdaQueryWrapper是无法使用别名的。如果使用普通的QueryWrapper,你是可以指定别名的,例如:qw.eq("e.name","ww")
课程须知
1、有Java开发基础,了解Lambda表达式; 2、至少会使用一种关系型数据库; 3、熟悉Maven; 4、熟悉SpringBoot; 5、最好熟悉MyBatis。
老师告诉你能学到什么?
1、了解MP的基本原理及框架特点; 2、掌握MP通用Mapper的使用; 3、掌握MP常用注解的使用; 4、掌握ActiveRecord模式的使用; 5、掌握MP多种主键策略的使用; 6、掌握MP常用配置的使用; 7、掌握MP通用Service的使用; 8、掌握MP在某些应用场景下的具体使用方式。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消