-
mysql的表如果使用了保留字,mybatis-plus的实体类注解可以写成
@TableField("`字段名`")
用反引号括起来 -
mybatis-plus实体类,如果有字段需要用typehandler来进行存取转换,除了在@TableField注解指定typehandler类以外,还需要在类的@TableName注解中添加
autoResultMap = true
,否则可能只有插入时会生效 -
mybatis-plus的QueryWrapper,eq匹配可以直接链式写,最后会生成连续的and
-
mybatis-plus的嵌套子查询貌似不太好实现,如果太复杂应该还是要写原生sql
-
mybatis-plus中的select子句如果要使用聚合函数,可以使用指定sql的那种
-
mybatis-plus如果想使用limit子句,可以使用QueryWrapper的last函数
-
mysql的longblob字段,存进去之后发现中文乱码,暂时未解决。只能说mybatis这边使用自定义的typehandler保证存入的时候是utf-8格式。编辑器、mybatis、数据库字符集、表字符集,都是utf-8但是还是有乱码,留到以后有缘解决。
-
接上一节,存的时候有乱码,如果想直接输出正确的编码数据,可以使用convert函数转换编码,例如:
CONVERT(bytes USING utf8mb4)
、
总结 :mp终归只是增强,复杂sql依然还要用原生的mybatis,很庆幸第一个项目写的是复杂的报表类项目,大大的锻炼的我的sql能力,虽然用的是oracle数据库。
用mp的时候,最多就是实体类加注解,然后用用简单的单表crud即可,一旦稍微复杂点,还是dao层去关联mapper.xml,免得复杂的原生sql好不容易写出来了,还要调mp的java代码再实现一遍,像个沙口,甚至不可能实现,笑。