mysql
番茄炒蛋不加蛋
这个作者很懒,什么都没留下…
展开
-
SQLException: Before start of result set
背景用惯了mybatis,今天用原生的jdbc获取链接,查询数据时,取数据报错。问题代码片段Connection conn = getConnection();PreparedStatement preparedStatement = conn.prepareStatement("SELECT max(version) as cur_version FROM test_version ");ResultSet resultSet = preparedStatement.executeQuery();原创 2022-02-14 17:27:05 · 574 阅读 · 0 评论 -
MySql利用SUBSTRING_INDEX函数实现按指定字段的任意部分排序
背景业务返回字段格式如下:book_1,book_10,book_11,book_2 等样式的,表格内容如下:如果我们按照普通的 order by 排序的话,会返回如下:SELECT * FROM test_sort ORDER BY name;但是我们需要按照 _ 后面的数字进行升序排序,-20,-1,1,2,3,10 的顺序解决利用 MySql 的 SUBSTRING_INDEX(str,delim,count) 函数进行截取字符串。函数参数解释:str: 待截取字符串(可以为列原创 2022-01-14 18:19:32 · 874 阅读 · 0 评论 -
记LambdaUpdateWrapper的带乐观锁update失败问题
背景由于项目集成了Mybatis-Plus,所以更新语句就自然采用了LambdaUpdateWrapper来构造更新条件,使用 update(T entity, Wrapper<T> updateWrapper)执行更新语句。由于此处逻辑借用CAS思想,利用乐观锁版本号来滚动更新。但是代码部署后发现滚动了3次更新都失败了。问题复现问题代码逻辑如下:LambdaUpdateWrapper<People> updateWrapper = Wrappers.lambdaUpdate原创 2020-11-16 16:09:11 · 9882 阅读 · 0 评论 -
Mybatis-Plus中正确使用sum聚合函数
由于 LambdaQueryWrapper 并不支持使用sum等求和的聚合函数。所以只能退而求其次使用 QueryWrapper 来进行构建查询语句。简单的例子如下://求某人的成绩和。QueryWrapper<People> queryWrapper = new QueryWrapper<>();queryWrapper.select("IFNULL(sum(score),0) as totalScore") .eq("user_name", us原创 2020-11-03 15:52:26 · 43441 阅读 · 13 评论 -
MyBatisPlus中使用or()和and()小坑
在项目中使用MyBatisPlus中的or()查询时由于误用,导致查询数据不对,仅作记录。写法一:LambdaQueryWrapper<Task> queryWrapper = new QueryWrapper<Task>().lambda(); queryWrapper .eq(Task::getUserId, "15") .eq(Task::getStatus, 2)原创 2020-08-25 16:31:36 · 4926 阅读 · 1 评论