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

Mybatis中關(guān)于自定義mapper.xml時,參數(shù)傳遞的方式及寫法

 更新時間:2023年12月27日 08:57:58   作者:huangyaa729  
這篇文章主要介紹了Mybatis中關(guān)于自定義mapper.xml時,參數(shù)傳遞的方式及寫法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

在使用mybatis框架時,大多時候自動生成的mapper.xml文件能滿足我們所需的數(shù)據(jù)庫操作,但一些情況下還是需要我們自己寫sql;為了加深印象,總結(jié)了下參數(shù)傳遞的方式以及各個關(guān)鍵字的含義如下:

語句中接收參數(shù)的方式有兩種

1、 #{}預(yù)編譯 (可防止sql注入)

2、${}非預(yù)編譯(直接的sql拼接,不能防止sql注入)

參數(shù)類型有三種

1、 基本數(shù)據(jù)類型

2、 HashMap(使用方式和pojo類似 )

3、 Pojo自定義包裝類型

基本數(shù)據(jù)類型使用方式

List<Bean> selectIdBySortTime(@Param(value="id")Long  id);

<sql id="Base_Column_List" > 
 id, car_dept_name, car_maker_name, icon,car_maker_py,hot_type 
 </sql> 
 <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" > 
 select 
 <include refid="Base_Column_List" /> 
 from common_car_make 
 where id = #{id,jdbcType=BIGINT} (jdbcType可省略)
 </select>

基本類型多參傳遞時候的方式,sql中不指定接收參數(shù)類型,直接對應(yīng)即可:

User login(@Param(value="name")String name,@Param(value="password")String password );
<select id="login"  resultType="com.pojo.User">
    select * from us where name=#{name} and password=#{password}
 </select>

復(fù)雜類型–map類型

   Service層
    Map<String, Object> paramMap=new hashMap();
    paramMap.put(“id”, value);
    paramMap.put(“carDeptName”,value);
    paramMap.put(“carMakerName”,value);
    paramMap.put(“hotType”,value);

Dao層 (如果不使用@Param注解,則sql中也可以省略屬性前綴cm.)
List<Bean> queryCarMakerList(@Param(value="cm")Map paramMap);

<select id="queryCarMakerList" resultMap="BaseResultMap" parameterType="java.util.Map"> 
  select 
  <include refid="Base_Column_List" /> 
  from common_car_make cm 
  where 1=1 
  <if test="id != null"> 
   and id = #{cm.id,jdbcType=DECIMAL} 
  </if> 
  <if test="carDeptName != null"> 
   and car_dept_name = #{cm.carDeptName,jdbcType=VARCHAR} 
  </if> 
  <if test="carMakerName != null"> 
   and car_maker_name = #{cm.carMakerName,jdbcType=VARCHAR} 
  </if> 
  <if test="hotType != null" > 
   and hot_type = #{cm.hotType,jdbcType=BIGINT} 
  </if> 
  ORDER BY id 
 </select>

復(fù)雜類型–類類型

與Map傳參的使用方式基本相同,不同的地方在于不同自己再填充map數(shù)據(jù),直接使用已定義的bean類即可。

<update id="updateByPrimaryKeySelective" parameterType="com.epeit.api.model.CommonCarMake" > 
 update common_car_make 
 <set > 
  <if test="carDeptName != null" > 
  car_dept_name = #{carDeptName,jdbcType=VARCHAR}, 
  </if> 
  <if test="carMakerName != null" > 
  car_maker_name = #{carMakerName,jdbcType=VARCHAR}, 
  </if> 
  <if test="icon != null" > 
  icon = #{icon,jdbcType=VARCHAR}, 
  </if> 
  <if test="carMakerPy != null" > 
   car_maker_py = #{carMakerPy,jdbcType=VARCHAR}, 
  </if> 
  <if test="hotType != null" > 
   hot_type = #{hotType,jdbcType=BIGINT}, 
  </if> 
 </set> 
 where id = #{id,jdbcType=BIGINT} 
 </update>

返回類型與接收類型關(guān)鍵字的區(qū)別

resultMap和 resultType的區(qū)別

兩者都是表示查詢結(jié)果集與java對象之間的一種關(guān)系,處理查詢結(jié)果集,映射到j(luò)ava對象。

  • resultMap表示將查詢結(jié)果集中的列一一映射到bean對象的各個屬性,映射的查詢結(jié)果集中的列標簽可以根據(jù)需要靈活變化。
  • resultType表示的是bean中的對象類,此時可以省略掉resultMap標簽的映射,但是必須保證查詢結(jié)果集中的屬性 和 bean對象類中的屬性是一一對應(yīng)的,此時大小寫不敏感,但是有限制。

parameterMap(不推薦) & parameterType

parameterMap和resultMap類似,表示將查詢結(jié)果集中列值的類型一一映射到j(luò)ava對象屬性的類型上,在開發(fā)過程中不推薦這種方式。

一般使用parameterType直接將查詢結(jié)果列值類型自動對應(yīng)到j(luò)ava對象屬性類型上,不再配置映射關(guān)系一一對應(yīng),例如上述代碼中下劃線部分表示將查詢結(jié)果類型自動對應(yīng)到Bean對象的屬性類型

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot整合Hibernate Validator實現(xiàn)參數(shù)驗證功能

    SpringBoot整合Hibernate Validator實現(xiàn)參數(shù)驗證功能

    這篇文章主要介紹了SpringBoot整合Hibernate Validator實現(xiàn)參數(shù)驗證功能,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 指定springboot的jar運行內(nèi)存方式

    指定springboot的jar運行內(nèi)存方式

    這篇文章主要介紹了指定springboot的jar運行內(nèi)存方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java泛型最全知識總結(jié)

    Java泛型最全知識總結(jié)

    面試被問到Java泛型怎么辦,有了這篇文章,讓你直接保送,文中有非常詳細的知識總結(jié)及相關(guān)代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java解決NullReferenceException異常的方法小結(jié)

    Java解決NullReferenceException異常的方法小結(jié)

    NullReferenceException是Java程序中常見的異常之一,但通過合理的編碼實踐和技術(shù)手段可以有效地避免和處理,本文介紹了NullReferenceException的產(chǎn)生原因、常見場景和多種解決方法,感興趣的可以了解一下
    2025-10-10
  • 如何通過Java實現(xiàn)加密、解密Word文檔

    如何通過Java實現(xiàn)加密、解密Word文檔

    這篇文章主要介紹了如何通過Java實現(xiàn)加密、解密Word文檔,對一些重要文檔,常需要對文件進行加密,查看文件時,需要正確輸入密碼才能打開文件。下面介紹了一種比較簡單的方法給Word文件加密以及如何給已加密的Word文件解除密碼保護,需要的朋友可以參考下
    2019-07-07
  • SpringBoot詳細講解多個配置文件的配置流程

    SpringBoot詳細講解多個配置文件的配置流程

    SpringBoot項目是一個標準的Maven項目,它的配置文件需要放在src/main/resources/下,其文件名必須為application,其存在兩種文件形式,分別是properties和yaml(或者yml)文件
    2022-06-06
  • SpringBoot對數(shù)據(jù)庫用戶名和密碼進行加密的兩種方案

    SpringBoot對數(shù)據(jù)庫用戶名和密碼進行加密的兩種方案

    在當今互聯(lián)網(wǎng)時代,?數(shù)據(jù)庫安全的重要性不言而喻,作為Java開發(fā)的主流框架,Spring Boot項目通常需要連接數(shù)據(jù)庫,而數(shù)據(jù)庫的?用戶名和密碼作為最敏感的信息之一,所以本文給大家詳細介紹兩種主流的數(shù)據(jù)源配置加密方案,需要的朋友可以參考下
    2025-12-12
  • MyBatis-Plus中的更新操作方式(通過id更新和條件更新)

    MyBatis-Plus中的更新操作方式(通過id更新和條件更新)

    本文主要介紹了MyBatis-Plus中實體對象的更新操作,包括通過id更新和條件更新兩種方式,詳細解釋了每種方式的方法使用、傳入?yún)?shù)以及生成的SQL語句,并給出測試代碼和運行結(jié)果
    2026-04-04
  • Java持久化XML文件配置解析

    Java持久化XML文件配置解析

    這篇文章主要為大家介紹了Java持久化XML文件配置解析,當你在使用?Java?編程語言?來編寫軟件時,實現(xiàn)持久化配置的方式。有需要的朋友可以借鑒參考下,希望能夠有所幫助<BR>
    2022-03-03
  • 分享關(guān)于JAVA 中使用Preferences讀寫注冊表時要注意的地方

    分享關(guān)于JAVA 中使用Preferences讀寫注冊表時要注意的地方

    這篇文章介紹了關(guān)于JAVA 中使用Preferences讀寫注冊表時要注意的地方,有需要的朋友可以參考一下
    2013-08-08

最新評論

亚东县| 栖霞市| 汝城县| 郯城县| 尚志市| 定西市| 林芝县| 高雄市| 义马市| 连云港市| 平定县| 安庆市| 梁平县| 丹东市| 沙洋县| 平昌县| 河间市| 女性| 开化县| 廉江市| 邛崃市| 灌阳县| 成都市| 道孚县| 平江县| 宣城市| 萝北县| 双柏县| 荔浦县| 库伦旗| 尼玛县| 抚州市| 吴旗县| 石渠县| 隆化县| 滨州市| 九寨沟县| 巴中市| 崇礼县| 来凤县| 甘德县|