20200221问题记录

  1. mysql的表如果使用了保留字,mybatis-plus的实体类注解可以写成@TableField("`字段名`")用反引号括起来

  2. mybatis-plus实体类,如果有字段需要用typehandler来进行存取转换,除了在@TableField注解指定typehandler类以外,还需要在类的@TableName注解中添加autoResultMap = true,否则可能只有插入时会生效

  3. mybatis-plus的QueryWrapper,eq匹配可以直接链式写,最后会生成连续的and

  4. mybatis-plus的嵌套子查询貌似不太好实现,如果太复杂应该还是要写原生sql

  5. mybatis-plus中的select子句如果要使用聚合函数,可以使用指定sql的那种

  6. mybatis-plus如果想使用limit子句,可以使用QueryWrapper的last函数

  7. mysql的longblob字段,存进去之后发现中文乱码,暂时未解决。只能说mybatis这边使用自定义的typehandler保证存入的时候是utf-8格式。编辑器、mybatis、数据库字符集、表字符集,都是utf-8但是还是有乱码,留到以后有缘解决。

  8. 接上一节,存的时候有乱码,如果想直接输出正确的编码数据,可以使用convert函数转换编码,例如:CONVERT(bytes USING utf8mb4)

总结 :mp终归只是增强,复杂sql依然还要用原生的mybatis,很庆幸第一个项目写的是复杂的报表类项目,大大的锻炼的我的sql能力,虽然用的是oracle数据库。
用mp的时候,最多就是实体类加注解,然后用用简单的单表crud即可,一旦稍微复杂点,还是dao层去关联mapper.xml,免得复杂的原生sql好不容易写出来了,还要调mp的java代码再实现一遍,像个沙口,甚至不可能实现,笑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值