如图,在使用mybatis连接sqlite数据库进行查询操作时发生了报错,没有相关查询结果出现,经过排查发现跟CONCAT函数有关,应该如何修改啊
Mybatis连接sqlite数据库查询时报错
如图,在使用mybatis连接sqlite数据库进行查询操作时发生了报错,没有相关查询结果出现,经过排查发现跟CONCAT函数有关,应该如何修改啊
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在SQLite中,
CONCAT
函数的语法与MySQL等其他一些数据库系统有所不同。SQLite 使用||
运算符来进行字符串拼接,而不是CONCAT
函数。因此,你需要将查询中的CONCAT
替换为||
。以下是修改后的SQL语句:
SELECT t.id, t.job_group, t.job_desc, t.add_time, t.update_time, t.author, t.alarm_email, t.schedule_type, t.schedule_conf, t.misfire_strategy, t.executor_handler, t.executor_param, t.executor_block_strategy, t.executor_timeout, t.executor_fail_retry_count, t.glue_type, t.glue_source, t.glue_remark, t.glue_updatetime, t.child_jobid, t.trigger_status, t.trigger_last_time, t.trigger_next_time FROM xxl_job_info AS t WHERE t.job_group = ? AND t.job_desc LIKE '%' || ? || '%' AND t.executor_handler LIKE '%' || ? || '%' AND t.author LIKE '%' || ? || '%' ORDER BY id DESC LIMIT ?, ?
现在,你需要更新你的 MyBatis XML 映射文件(例如:XxlJobInfoMapper.xml)中的查询部分,将原有的
CONCAT
替换成上述的||
连接符。确保你在XML标签的正确位置进行了替换,如下所示:<select id="pageList" parameterType="map" resultType="com.xxl.job.admin.entity.XxlJobInfo"> SELECT ... FROM xxl_job_info AS t WHERE t.job_group = #{jobGroup} AND t.job_desc LIKE '%' || #{jobDesc} || '%' AND t.executor_handler LIKE '%' || #{executorHandler} || '%' AND t.author LIKE '%' || #{author} || '%' ORDER BY id DESC LIMIT #{offset}, #{limit} </select>
请确保在你的 Java 代码中传递正确的参数到这个方法,并且这些参数对应于你在映射文件中使用的占位符(如:
#{jobGroup}
、#{jobDesc}
等)。这样应该可以解决因CONCAT
函数不支持而引发的问题。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 lvgl v8.2定时器提前到来
- ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
- ¥15 cam_lidar_calibration报错
- ¥15 拓扑学,凸集,紧集。。
- ¥15 如何扩大AIS数据容量
- ¥15 单纯型python实现编译报错
- ¥15 c++2013读写oracle
- ¥15 c++ gmssl sm2验签demo
- ¥15 关于模的完全剩余系(关键词-数学方法)
- ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助