亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mybatis使用@param注解四種情況解析

 更新時間:2020年08月31日 11:48:14   作者:白熊啊  
這篇文章主要介紹了Mybatis使用@param注解四種情況解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

一、方法有多個參數(shù)

例如:

接口方法:

@Mapper
public interface UserMapper {
  Integer insert(@Param("username") String username, @Param("address") String address);
}

對應(yīng)的xml:

<insert id="insert" parameterType="org.javaboy.helloboot.bean.User">
  insert into user (username,address) values (#{username},#{address});
</insert>

原因:當(dāng)不使用 @Param 注解時,mybatis 是不認(rèn)識哪個參數(shù)叫什么名字的,盡管在接口中定義了參數(shù)的名稱,mybatis仍然不認(rèn)識。這時mybatis將會以接口中參數(shù)定義的順序和SQL語句中的表達(dá)式進(jìn)行映射,這是默認(rèn)的。

二、方法參數(shù)要取別名

例如

@Mapper
public interface UserMapper {
  Integer insert(@Param("username") String username, @Param("address") String address);
}

對應(yīng)的xml:

<insert id="insert" parameterType="org.javaboy.helloboot.bean.User">
  insert into user (username,address) values (#{username},#{address});
</insert>

三、XML 中的 SQL 使用了 $ 拼接sql

$ 會有注入的問題,但是有的時候不得不使用 $ 符號,例如要傳入列名或者表名的時候,這個時候必須要添加 @Param 注解

例如:

@Mapper
public interface UserMapper {
  List<User> getAllUsers(@Param("order_by")String order_by);
}

對應(yīng)xml:

<select id="getAllUsers" resultType="org.javaboy.helloboot.bean.User">
  select * from user
  <if test="order_by!=null and order_by!=''">
    order by ${order_by} desc
  </if>
</select>

四、動態(tài) SQL 中使用了參數(shù)作為變量

如果在動態(tài) SQL 中使用參數(shù)作為變量,那么也需要 @Param 注解,即使你只有一個參數(shù)。例如如下方法:

@Mapper
public interface UserMapper {
  List<User> getUserById(@Param("id")Integer id);
}

對應(yīng)xml:

<select id="getUserById" resultType="org.javaboy.helloboot.bean.User">
  select * from user
  <if test="id!=null">
    where id=#{id}
  </if>
</select>

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

相關(guān)文章

  • 基于Java HttpClient和Htmlparser實現(xiàn)網(wǎng)絡(luò)爬蟲代碼

    基于Java HttpClient和Htmlparser實現(xiàn)網(wǎng)絡(luò)爬蟲代碼

    這篇文章主要介紹了基于Java HttpClient和Htmlparser實現(xiàn)網(wǎng)絡(luò)爬蟲代碼的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • logback?EvaluatorFilter日志過濾器源碼解讀

    logback?EvaluatorFilter日志過濾器源碼解讀

    這篇文章主要為大家介紹了logback?EvaluatorFilter日志過濾器源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • java8中的HashMap原理詳解

    java8中的HashMap原理詳解

    這篇文章主要介紹了java8中的HashMap原理詳解,HashMap是日常開發(fā)中非常常用的容器,HashMap實現(xiàn)了Map接口,底層的實現(xiàn)原理是哈希表,HashMap不是一個線程安全的容器,需要的朋友可以參考下
    2023-09-09
  • IDEA快速部署Spring?Boot?項目到Docker的實現(xiàn)方法

    IDEA快速部署Spring?Boot?項目到Docker的實現(xiàn)方法

    本文主要介紹了IDEA快速部署Spring?Boot?項目到Docker的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • ActiveMQ安裝及部署教程圖解

    ActiveMQ安裝及部署教程圖解

    這篇文章主要介紹了ActiveMQ安裝及部署教程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • SWT(JFace)體驗之圖片的動態(tài)漸變效果

    SWT(JFace)體驗之圖片的動態(tài)漸變效果

    SWT(JFace)體驗之圖片的動態(tài)漸變效果
    2009-06-06
  • ReentrantLock重入鎖底層原理示例解析

    ReentrantLock重入鎖底層原理示例解析

    這篇文章主要為大家介紹了ReentrantLock重入鎖底層原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Javaweb基礎(chǔ)入門requse原理與使用

    Javaweb基礎(chǔ)入門requse原理與使用

    Request對象的作用是與客戶端交互,收集客戶端的Form、Cookies、超鏈接,或者收集服務(wù)器端的環(huán)境變量,接下來本篇將詳細(xì)講述
    2021-11-11
  • SpringBoot自動配置源碼深入刨析講解

    SpringBoot自動配置源碼深入刨析講解

    這篇文章主要介紹了SpringBoot自動配置原理分析,SpringBoot是我們經(jīng)常使用的框架,那么你能不能針對SpringBoot實現(xiàn)自動配置做一個詳細(xì)的介紹。如果可以的話,能不能畫一下實現(xiàn)自動配置的流程圖。牽扯到哪些關(guān)鍵類,以及哪些關(guān)鍵點
    2022-09-09
  • Java算法設(shè)計與分析分治算法

    Java算法設(shè)計與分析分治算法

    這篇文章主要介紹了Java算法設(shè)計與分析分治算法,一般分治算法在正文中分解為兩個即以上的遞歸調(diào)用,并且子類問題一般是不想交的
    2022-07-07

最新評論