讲师回答 / 老猿
MP自带的CRUD操作是针对单表操作的,如果要操作多表,可以写自定义sql。给你举个使用条件构造器的多表sql例子,可以写在xml中或注解中,下面的是用xml的写法:<...code...>对应的Mapper接口中...
2020-08-17
讲师回答 / 老猿
我怀疑这应该是MP默认主键策略的问题,你没配置策略,他的默认策略是雪花算法,用雪花算法生成主键了。而你主键类型为Integer,最大21亿左右,超范围了,所以报错。后来你配置了策略为AUTO,就是数据库自增,MP就不给你设置主键了,所以正常。
2020-08-16
已采纳回答 / YoYo_MM
其实总体来说用yml更优雅,更简洁。你可以很方便的看出属性的父子关系,不像properties里面全都是代码,感觉很乱。一般springboot支持的都可以用yml。
2020-08-15
已采纳回答 / 老猿
1、insql这种使用sql注入风险,但是你可以自己防止sql注入,例如保证拼接进来的参数,是后端逻辑计算出来的,并且不存在风险的,不是前端传的,如果是前端传的,不建议用这种方式拼接。2、“王姓”的那个我应该用的是likeRight吧,这个不存在注入风险,你看看打印出来的sql语句就明白了。
2020-08-07
已采纳回答 / 老猿
这个我认为不是bug,你的说那个短路与实现的效果,那是基于java语法层面的,mp基于应用层面,实现不了你说的这种需求。lambdaQueryWrapper.eq(StringUtil.isNotEmpty(xxx),Dto::getXX,new BigDecimal(xxx));这个方法,会根据第一个条件是否为true来判断,这句是否加入到sql中,但不能做短路处理。
2020-08-06
讲师回答 / 老猿
主要看场景和习惯,例如你就是一个根据名字查询,name like "%XXX%",或者根据两三个条件查询,就不用再写sql语句了,不用再在Mapper接口中定义方法,定义参数等等,挺方便的,多条件的复杂sql也可以用mp的方式写出来,但是你要做个判断,是用原生写简单还是mp简单。我的原则就是哪个简单哪个快就用哪个写法写,我mp用熟悉了之后,是在减少工作量,而不是增加工作量。
2020-08-02