时间:2022-07-27 11:17:02 | 栏目:JAVA代码 | 点击:次
今天用mybatis-plus进行开发的时候遇到一个问题,就是用mysql自带的排序进行数据排序的时候,发现排序的数据不准确。
后来在网上查了一下,原来是自己给自己挖的坑,数据库排序字段用的是varcher类型,而排序函数针对的是number类型。
对于mysql和oracle都实用
因为用的是mybatis-plus,不想写sql怎么办呢?那就用自带的排序函数喽。排序字段直接"+1"就Ok了
//倒叙 queryWrapper.orderByDesc("visit_num+1");
不能是tinyint(1),tinyint(1)默认是boolean类型
数据库设置了自增主键后,po类需要增加@TableId(type = IdType.AUTO),或者不要id字段才能生效。
否则会自动分配id,如下图:
子查询中需要查出唯一标识
更新时间没有更新问题
数据库updateTime设置了 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,仍然不会自动更新时间,需要手动设置当前时间,或者用updateById方法
参数为空会带入到SQL中(branch_code = null),需要手动过滤,或者在eq中增加条件
customerIssueFlag定义的是String类型,值是Y or N
除了主数据源对应的mapper.java,都不能加 @Mapper 注解,否则会报找不到
由于使用了mybatis-plus的包,默认自动全包扫描@Mapper注解。mybatis扫描生成的Mapper比其他自定义配置的bean生成对应的Mapper对象块,而自定义的mybatis@MapperScan后扫描,Dao Bean已经生成了,无法再指定数据源进行注入了。
所以如果在 @Configrution注解类中指定了扫描类,就不用再加 @Mapper注解了