最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MyBatis常見報錯問題及解決方案

 更新時間:2020年11月17日 10:52:18   作者:龍谷情Sinoam  
這篇文章主要介紹了MyBatis常見報錯問題及解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這是一個出錯的代碼

public interface OrderInfoManageMapper {
  List<GetOrderInfoManageListReq> selectAllOrder();
  void modifyDelivery(int id);
  void removeOrder(int id);
  List<GetOrderInfoManageListReq> selectOrderById(@Param("id") Integer id);
}

一、報錯:

1 There is no getter for property named 'id' in 'class java.lang.Integer'

檢查mapper.xml文件,沒錯,如下:

<select id="selectOrderById" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    SELECT DISTINCT
    order_info.id,
    user_info.user_name,
    order_info.order_status,
    order_info.pay_type,
    order_info.total_price,
    ship_address.ship_user_name,
    ship_address.ship_user_mobile,
    ship_address.ship_address,
    order_goods.goods_desc,
    order_goods.goods_sku,
    order_goods.goods_icon,
    order_goods.goods_price
    FROM
    order_info,
    user_info,
    ship_address,
    order_goods
    WHERE
    order_info.id = order_goods.order_id
    AND order_info.user_id = user_info.id
    AND order_info.ship_id = ship_address.id
    <if test="id!= null and id!= '' ">
      AND order_info.id = #{id}
    </if>
  </select>

檢查mapper接口,如下:

public interface OrderInfoManageMapper {
  List<GetOrderInfoManageListReq> selectAllOrder();
  void modifyDelivery(int id);
  void removeOrder(int id);
  List<GetOrderInfoManageListReq> selectOrderById(Integer id);
}

看似沒有問題,但是id的話,需要這么寫(看最后一行):

public interface OrderInfoManageMapper {
  List<GetOrderInfoManageListReq> selectAllOrder();
  void modifyDelivery(int id);
  void removeOrder(int id);
  List<GetOrderInfoManageListReq> selectOrderById(@Param("id") Integer id);
}

二、sql沒問題卻報錯:

java.sql.SQLException: 無效的列類型: 1111

原因是在mybatis中

 SELECT
 C_NAME1,
 C_NAME2
 FROM
 MY_TABLE
 WHERE 
 1=1
 AND ID IN ({#param})

param是java傳來的字符串 'id1','id2','id3'

此時就會報這個錯誤,因為使用in條件時不能用#,要使用$,如

 SELECT
 C_NAME1,
 C_NAME2
 FROM
 MY_TABLE
 WHERE 
 1=1
 AND ID IN ({$param})

三、java想mybatis中傳入‘a(chǎn)','b','c',放在in中

可能會這么寫mybatis:

 SELECT * FROM TABLE_NAME
 WHERE 1=1
 <if para!= null && para!="" >
 AND PARS in (#{para})
 </if>

java傳過來的para為

 String para = "'a','x','d','g'";

此時預(yù)期效果為

 SELECT * FROM TABLE_NAME
 WHERE 1=1
 AND PARS in ('a','x','d','g')

但是判斷會通過,值不會傳入,會出現(xiàn):

 SELECT * FROM TABLE_NAME
 WHERE 1=1
 AND PARS in ()

將#換成$才可以。雖然#很安全

SELECT * FROM TABLE_NAME
WHERE 1=1
<if para!=null && para!="" >
AND PARS in (${para})
</if>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java 存儲模型和共享對象詳解

    Java 存儲模型和共享對象詳解

    這篇文章主要介紹了Java 存儲模型和共享對象詳解的相關(guān)資料,對Java存儲模型,可見性和安全發(fā)布的問題是起源于Java的存儲結(jié)構(gòu)及共享對象安全,需要的朋友可以參考下
    2017-03-03
  • ThreadLocal的set方法原理示例解析

    ThreadLocal的set方法原理示例解析

    這篇文章主要為大家介紹了ThreadLocal的set方法原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 一文帶你深入理解Java?AbstractQueuedSynchronizer

    一文帶你深入理解Java?AbstractQueuedSynchronizer

    在并發(fā)編程中,鎖是一種保證線程安全的方式,這篇文章主要為大家介紹了AbstractQueuedSynchronizer(AQS)的數(shù)據(jù)結(jié)構(gòu)及實現(xiàn)原理,感興趣的小伙伴可以了解一下
    2023-07-07
  • 分析java并發(fā)中的wait notify notifyAll

    分析java并發(fā)中的wait notify notifyAll

    一個線程修改一個對象的值,而另一個線程則感知到了變化,然后進行相應(yīng)的操作,這就是wait()、notify()和notifyAll()方法的本質(zhì)。本文將詳細來介紹它們概念實現(xiàn)以及區(qū)別
    2021-06-06
  • maven多模塊打包注意事項詳解

    maven多模塊打包注意事項詳解

    這篇文章主要為大家介紹了maven多模塊打包注意事項詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Java刪除文件、目錄及目錄下所有文件的方法實例

    Java刪除文件、目錄及目錄下所有文件的方法實例

    這篇文章主要給大家介紹了關(guān)于利用Java刪除文件、目錄及目錄下所有文件的方法,文中給出了詳細的示例代碼與注解,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • JDBC連接MySql數(shù)據(jù)庫步驟 以及查詢、插入、刪除、更新等

    JDBC連接MySql數(shù)據(jù)庫步驟 以及查詢、插入、刪除、更新等

    這篇文章主要介紹了JDBC連接MySql數(shù)據(jù)庫步驟,以及查詢、插入、刪除、更新等十一個處理數(shù)據(jù)庫信息的功能,需要的朋友可以參考下
    2018-05-05
  • Java?超詳細講解設(shè)計模式之原型模式講解

    Java?超詳細講解設(shè)計模式之原型模式講解

    原型模式是用于創(chuàng)建重復(fù)的對象,同時又能保證性能。這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式,今天通過本文給大家介紹下Java?原型設(shè)計模式,感興趣的朋友一起看看吧
    2022-03-03
  • springAOP中用joinpoint獲取切入點方法的參數(shù)操作

    springAOP中用joinpoint獲取切入點方法的參數(shù)操作

    這篇文章主要介紹了springAOP中用joinpoint獲取切入點方法的參數(shù)操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • SpringBoot整合Flink CDC實現(xiàn)實時追蹤mysql數(shù)據(jù)變動

    SpringBoot整合Flink CDC實現(xiàn)實時追蹤mysql數(shù)據(jù)變動

    我們將整合Spring Boot和Apache Flink CDC(Change Data Capture)來實現(xiàn)實時數(shù)據(jù)追蹤,下面是一個基本的實踐流程代碼,包括搭建Spring Boot項目、整合Flink CDC以及實現(xiàn)數(shù)據(jù)變動的實時追蹤,需要的朋友可以參考下
    2024-07-07

最新評論

黄石市| 阳朔县| 定南县| 深州市| 大丰市| 新兴县| 富锦市| 成安县| 垫江县| 衡阳市| 安远县| 泗阳县| 响水县| 分宜县| 平舆县| 五家渠市| 江门市| 会宁县| 进贤县| 长垣县| 栾城县| 夏邑县| 鄂托克前旗| 建宁县| 宜城市| 扎赉特旗| 抚远县| 黔南| 漳州市| 江源县| 读书| 灵川县| 襄樊市| 疏勒县| 上高县| 伊金霍洛旗| 财经| 栾城县| 乌海市| 山丹县| 扎鲁特旗|