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

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

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

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

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

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

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

參數(shù)類(lèi)型有三種

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

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

3、 Pojo自定義包裝類(lèi)型

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

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>

基本類(lèi)型多參傳遞時(shí)候的方式,sql中不指定接收參數(shù)類(lèi)型,直接對(duì)應(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ù)雜類(lèi)型–map類(lèi)型

   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ù)雜類(lèi)型–類(lèi)類(lèi)型

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

<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>

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

resultMap和 resultType的區(qū)別

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

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

parameterMap(不推薦) & parameterType

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

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

總結(jié)

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

相關(guān)文章

  • SpringBoot使用itext填充pdf表單及導(dǎo)出pdf的流程

    SpringBoot使用itext填充pdf表單及導(dǎo)出pdf的流程

    由于最近開(kāi)發(fā)的項(xiàng)目需要用到打印單據(jù),就在網(wǎng)上找了一下方案,反反復(fù)復(fù),都沒(méi)有找到合適的,借鑒了網(wǎng)上資源,使用itext5、itext7的工具包,所以本文介紹了SpringBoot使用itext填充pdf表單及導(dǎo)出pdf的流程,需要的朋友可以參考下
    2024-09-09
  • Java環(huán)境配置圖文教程(推薦)

    Java環(huán)境配置圖文教程(推薦)

    下面小編就為大家?guī)?lái)一篇Java環(huán)境配置圖文教程(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • IDEA中Maven依賴(lài)包無(wú)法下載或?qū)氲慕鉀Q方案(系統(tǒng)缺失文件導(dǎo)致)

    IDEA中Maven依賴(lài)包無(wú)法下載或?qū)氲慕鉀Q方案(系統(tǒng)缺失文件導(dǎo)致)

    在配置Maven環(huán)境時(shí),可能會(huì)遇到各種報(bào)錯(cuò)問(wèn)題,首先確保Maven路徑配置正確,例如使用apache-maven-3.5.0版本,則需要在系統(tǒng)環(huán)境變量的Path中添加其bin目錄路徑,并上移優(yōu)先級(jí),接下來(lái),在Maven的conf目錄下修改settings.xml文件,將鏡像源改為阿里云
    2024-09-09
  • 解決@Scope(“prototype“)不生效的問(wèn)題

    解決@Scope(“prototype“)不生效的問(wèn)題

    這篇文章主要介紹了解決@Scope(“prototype“)不生效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot整合LocalDateTime的過(guò)程

    SpringBoot整合LocalDateTime的過(guò)程

    LocalDateTime 和 Date 是 Java 中處理日期和時(shí)間的兩種不同的類(lèi),在 JDK8 中引入了 java.time 包,這篇文章主要介紹了SpringBoot整合LocalDateTime的過(guò)程,需要的朋友可以參考下
    2024-08-08
  • 作為Java程序員應(yīng)該掌握的10項(xiàng)技能

    作為Java程序員應(yīng)該掌握的10項(xiàng)技能

    這篇文章主要介紹了作為Java程序員應(yīng)該掌握的10項(xiàng)技能,包括java的知識(shí)點(diǎn)與相關(guān)的技能,對(duì)于java的學(xué)習(xí)有不錯(cuò)的參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05
  • java后端請(qǐng)求兌現(xiàn)request的中文亂碼問(wèn)題解決

    java后端請(qǐng)求兌現(xiàn)request的中文亂碼問(wèn)題解決

    文章主要講述了在處理處理方案工作中遇到中文亂碼問(wèn)題的解決過(guò)程,通過(guò)復(fù)現(xiàn)和分析亂碼問(wèn)題,發(fā)現(xiàn)是由于解碼規(guī)則和后端服務(wù)編碼不一致導(dǎo)致的,最終通過(guò)修改過(guò)濾器中的編碼設(shè)置解決了問(wèn)題
    2025-02-02
  • 解析Java?中for循環(huán)和foreach循環(huán)哪個(gè)更快

    解析Java?中for循環(huán)和foreach循環(huán)哪個(gè)更快

    這篇文章主要介紹了Java中for循環(huán)和foreach循環(huán)哪個(gè)更快示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 解決若依pageHelper在動(dòng)態(tài)切換數(shù)據(jù)源問(wèn)題

    解決若依pageHelper在動(dòng)態(tài)切換數(shù)據(jù)源問(wèn)題

    這篇文章主要介紹了解決pageHelper在動(dòng)態(tài)切換數(shù)據(jù)源問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • java開(kāi)發(fā)就業(yè)信息管理系統(tǒng)

    java開(kāi)發(fā)就業(yè)信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java開(kāi)發(fā)就業(yè)信息管理平臺(tái),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-06-06

最新評(píng)論