国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mybatis-plus解析sql發(fā)生異常:net.sf.jsqlparser.JSQLParserException

這篇具有很好參考價(jià)值的文章主要介紹了Mybatis-plus解析sql發(fā)生異常:net.sf.jsqlparser.JSQLParserException。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

問(wèn)題描述

在使用mybatis-plus的過(guò)程中,有一個(gè)jsonb字段使用了jsonb_exists_any (field_name, text[])作為where條件查詢(xún),執(zhí)行sql如下:

SELECT *?FROM table_name?
WHERE??jsonb_exists_any (field_name, ARRAY['110544709344', '12564892357'])

上面的sql在navicat中執(zhí)行正常,所以sql沒(méi)有問(wèn)題,但是在mybatis-plus的xml文件中使用就會(huì)報(bào)錯(cuò),異常信息如下:

Caused by: net.sf.jsqlparser.JSQLParserException: Encountered unexpected token: "(" "("
    at line 4, column 33.

Was expecting one of:

    "&"
    "&&"
    "::"
    ";"
    "<<"
    ">>"
    "AND"
    "COLLATE"
    "CONNECT"
    "EXCEPT"
    "FOR"
    "GROUP"
    "HAVING"
    "INTERSECT"
    "MINUS"
    "OR"
    "ORDER"
    "START"
    "UNION"
    "["
    "^"
    "|"
    <EOF>

	at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:188) ~[jsqlparser-4.0.1-SNAPSHOT.jar:na]
	at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:176) ~[jsqlparser-4.0.1-SNAPSHOT.jar:na]
	at com.baomidou.mybatisplus.core.parser.AbstractJsqlParser.parser(AbstractJsqlParser.java:62) ~[mybatis-plus-core-3.4.2.jar:3.4.2]
	... 139 common frames omitted

解決方案

方案1:在網(wǎng)上看了很多解決方式,說(shuō)是因?yàn)镸yBatis_Plus框架中,有多租戶(hù)的功能(也就是通過(guò)sql攔截器注入租戶(hù)信息),MP會(huì)進(jìn)行數(shù)據(jù)權(quán)限的過(guò)濾導(dǎo)致的,可以使用下面的注解(+配置)解決:

// Mybatis-plus 3.4.x以前的的版本
@SqlParser(filter = true)

// 如果Mybatis-plus版本是3.1.1以上的,直接添加@SqlParser注解即可,但如果是3.1.1以下版本,還需要在資源文件添加如下配置:
# 開(kāi)啟 SQL 解析緩存注解生效
mybatis-plus: 
    global-config: 
        sql-parser-cache: true


// Mybatis-plus 3.4.x之后的版本,@SqlParser已過(guò)期,可以直接使用下面的注解代替
@InterceptorIgnore(tenantLine = "true")

方案2: 由于我們的系統(tǒng)本身就需要多租戶(hù)功能,所以無(wú)法通過(guò)上面的方式解決,在網(wǎng)上又找了下,看到了通過(guò)升級(jí)com.github.jsqlparser:jsqlparser sql解析器,解決依賴(lài)沖突的方案來(lái)解決:

https://blog.csdn.net/xiaozhang_man/article/details/127193780

最終方案:?由于不敢隨便升級(jí)依賴(lài)包,怕引入新的問(wèn)題,我最終的解決方案是不使用array函數(shù),避開(kāi)jsqlparser不支持某些關(guān)鍵字或函數(shù),修改后的sql如下:

SELECT * FROM table_name

WHERE??jsonb_exists_any (field_name, '{110544709344, 12564892357}')

擴(kuò)展知識(shí):jsonb_exists_any只支持字符串數(shù)組(text[])的檢索,不支持integer、bigint等數(shù)值類(lèi)型,在構(gòu)建json數(shù)據(jù)結(jié)構(gòu)的時(shí)候需要注意下。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-787975.html

到了這里,關(guān)于Mybatis-plus解析sql發(fā)生異常:net.sf.jsqlparser.JSQLParserException的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 聊聊mybatis-plus的sql加載順序

    本文主要研究一下如果mybatis mapper定義了多個(gè)同名方法會(huì)不會(huì)有問(wèn)題 com/baomidou/mybatisplus/core/MybatisConfiguration.java com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean.java MybatisSqlSessionFactoryBean的buildSqlSessionFactory方法會(huì)根據(jù)mapperLocations的配置取加載xml配置,即加載xml的mapper信息

    2024年02月10日
    瀏覽(20)
  • Mybatis-Plus如何自定義SQL注入器?

    Mybatis-Plus如何自定義SQL注入器?

    有關(guān)Mybatis-Plus常用功能之前有做過(guò)一篇總結(jié): MyBatisPlus常用功能總結(jié)!(附項(xiàng)目示例) 我們?cè)谑褂肕ybatis-Plus時(shí),dao層都會(huì)去繼承BaseMapper接口,這樣就可以用BaseMapper接口所有的方法, BaseMapper中每一個(gè)方法其實(shí)就是一個(gè)SQL注入器 在Mybatis-Plus的核心(core)包下,提供的默認(rèn)可注入方

    2023年04月12日
    瀏覽(26)
  • Mybatis-Plus使用Wrapper自定義SQL

    Mybatis-Plus使用Wrapper自定義SQL

    簡(jiǎn)要說(shuō)明:Mybatis-Plus使用Wrapper自定義SQL,主要的代碼說(shuō)明,詳情可以往后看。 假設(shè)有三張表(這三張表在: SpringBoot整合mybatis-plus-CSDN博客,有 )的關(guān)系如圖所示 對(duì)應(yīng)的UserMapper.java的主要代碼如下 對(duì)應(yīng)的UserMapper.xml如下所示 大概結(jié)果如下所示: 聯(lián)表查詢(xún),Mybatis-Plus使用Wr

    2024年01月16日
    瀏覽(43)
  • Mybatis ,Mybatis-plus列表多字段排序,包含sql以及warpper

    Mybatis ,Mybatis-plus列表多字段排序,包含sql以及warpper

    首先根據(jù)咱們返回前端的數(shù)據(jù)列來(lái)規(guī)劃好排序字段 如下: 這里的字段為返回VO的字段,要轉(zhuǎn)換成數(shù)據(jù)庫(kù)字段然后加入到排序中 示例,穿了 surname,cerRank 多字段,然后是倒序 false 首先創(chuàng)建好映射,如下代碼,第一個(gè)List 為前端字段VO, 第二個(gè)List 為數(shù)據(jù)庫(kù)字段。Util.handle 是將兩個(gè)轉(zhuǎn)換

    2024年02月14日
    瀏覽(18)
  • mybatis-plus控制臺(tái)打印sql(mybatis-Log)

    mybatis-plus控制臺(tái)打印sql(mybatis-Log)

    配置了mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl;但是mybatis執(zhí)行的sql沒(méi)有輸出 需要檢查點(diǎn): 1、日志級(jí)別設(shè)置:請(qǐng)確保你的日志級(jí)別配置正確。如果日志級(jí)別設(shè)置得太低,可能導(dǎo)致SQL語(yǔ)句不會(huì)被打印出來(lái)。你可以嘗試將日志級(jí)別調(diào)整為DEBUG或更高級(jí)別,以確

    2024年02月03日
    瀏覽(92)
  • Mybatis-Plus的SQL注入器實(shí)現(xiàn)批量插入/修改,效率比較

    Mybatis-Plus的SQL注入器實(shí)現(xiàn)批量插入/修改,效率比較

    mysql支持一條sql語(yǔ)句插入多條數(shù)據(jù)。但是Mybatis-Plus中默認(rèn)提供的saveBatch、updateBatchById方法并不能算是真正的批量語(yǔ)句,而是遍歷實(shí)體集合執(zhí)行INSERT_ONE、UPDATE_BY_ID語(yǔ)句。 mybatis-plus雖然做了分批請(qǐng)求、一次提交的處理。但如果jdbc不啟用配置rewriteBatchedStatements,那么批量提交的s

    2024年02月11日
    瀏覽(25)
  • springboot整合mybatis-plus的sql輸出到日志文件上

    springboot整合mybatis-plus的sql輸出到日志文件上

    springboot整合mybatis-plus的sql輸出到日志文件上 在平時(shí)的日常開(kāi)發(fā)中,我們希望sql打印在控制臺(tái)上,只要如下配置即可 但是在生產(chǎn)中如果希望sql輸出到日志文件上,有幾種方式可以實(shí)現(xiàn),下面我就用項(xiàng)目中常用的兩種方式(不引入第三方依賴(lài)) 一、修改yml文件配置即可 缺點(diǎn):

    2024年02月01日
    瀏覽(26)
  • 【springboot3.x 記錄】解決 springboot3 集成 mybatis-plus 報(bào) sqlSession 異常

    2022-12-30,作者最新發(fā)布了?3.5.3.1 版本,不需要使用快照版本了 ========================= springboot3 已經(jīng)發(fā)布正式版,第一時(shí)間嘗鮮看看如何,但是在集成?mybatis-plus 最新版 3.5.2 的時(shí)候發(fā)現(xiàn)提示異常。 看來(lái) springboot3 在注入這塊做了調(diào)整,但目前?mybatis-plus 并沒(méi)有適配到。 于是翻查

    2024年02月13日
    瀏覽(17)
  • 深入解析Mybatis-Plus框架:簡(jiǎn)化Java持久層開(kāi)發(fā)(二)

    深入解析Mybatis-Plus框架:簡(jiǎn)化Java持久層開(kāi)發(fā)(二)

    博客地址: CSDN :https://blog.csdn.net/powerbiubiu 本章節(jié)開(kāi)始從實(shí)際的應(yīng)用場(chǎng)景,來(lái)講解Mybatis-Plus常用的一些操作,根據(jù)業(yè)務(wù)場(chǎng)景來(lái)進(jìn)行增刪改查的功能,首先先搭建一個(gè)項(xiàng)目。 1 搭建數(shù)據(jù)庫(kù) 根據(jù)業(yè)務(wù)場(chǎng)景,設(shè)定了用戶(hù),角色,菜單三張表,同時(shí)還有用戶(hù)與角色關(guān)聯(lián)表,角色與菜

    2024年02月20日
    瀏覽(21)
  • Mybatis-plus 配置自定義sql(.xml文件)查詢(xún)語(yǔ)句的步驟

    Mybatis-plus 配置自定義sql(.xml文件)查詢(xún)語(yǔ)句的步驟

    這是使用Mybatis-plus 的自動(dòng)生成實(shí)體類(lèi)代碼生成.xml文件, 所以他會(huì)在java目錄下,不在resources目錄下 如果在java目錄下的xml文件,需要分別配置application.yml和pom.xml文件 type-aliases-package:java目錄下邊的第一級(jí)包名 mapper-locations: classpath:映射器的地址: 類(lèi)路徑:也就是.xml所在的包名

    2024年02月16日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包