MyBatis獲取參數(shù)值的兩種方式詳解
MyBatis配置相關(guān)模板
1.核心配置文件的模板
2.映射文件模板
3.封裝SqlSessionUtils工具類(lèi)
package com.atguigu.mybatis.utils; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; public class SqlSessionUtils { public static SqlSession getSqlSession(){ SqlSession sqlSession = null; try { InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); sqlSession = sqlSessionFactory.openSession(true); } catch (IOException e) { e.printStackTrace(); } return sqlSession; } }
MyBatis獲取參數(shù)值的兩種方式
- MyBatis獲取參數(shù)值的兩種方式:${}和#{}
- ${}本質(zhì)是字符串拼接,#{}的本質(zhì)是占位符賦值
- ${}使用字符串拼接的方式拼接sql,若為字符串類(lèi)型或日期類(lèi)型的字段進(jìn)行賦值時(shí),需要手動(dòng)加單引號(hào)。
- #{}使用占位符賦值的方式拼接sql,若為字符串類(lèi)型或日期類(lèi)型的字段進(jìn)行賦值時(shí),需要自動(dòng)加單引號(hào)。
1.單個(gè)字面量類(lèi)型的參數(shù)
若mapper接口的方法參數(shù)為單個(gè)的字面量類(lèi)型,此時(shí)可以使用${}和#{}以任意的名稱(chēng)獲取參數(shù)值。${}需要手動(dòng)加引號(hào)
①在ParameterMapper接口上
②在ParameterMapper.xml上
用#{username}- username可任意替換
用’${username}’ - username可任意替換
③測(cè)試
2.多個(gè)字面量類(lèi)型的參數(shù)
- 若mapper接口的方法參數(shù)是多個(gè)時(shí),此時(shí)MyBatis會(huì)自動(dòng)的將這些參數(shù)放在一個(gè)map集合中以arg0,arg1…為鍵,以參數(shù)為值或者以param1,param2為鍵,以參數(shù)為值
- 此時(shí)通過(guò)${}和#{}訪(fǎng)問(wèn)map集合的鍵會(huì)獲取對(duì)應(yīng)的值
①在ParameterMapper接口中
②在 ParameterMapper.xml配置類(lèi)
③測(cè)試
3.map集合類(lèi)型的參數(shù)
若map接口的方法參數(shù)為多個(gè),可以手動(dòng)創(chuàng)建map集合,通過(guò)#{}和${}訪(fǎng)問(wèn)map集合的鍵獲取對(duì)應(yīng)的值
①在ParameterMapper接口中
②在 ParameterMapper.xml配置類(lèi)
③測(cè)試
4.實(shí)體類(lèi)類(lèi)型的參數(shù)
若mapper接口的方法參數(shù)是實(shí)體類(lèi)對(duì)象,可以使用${}或#{}通過(guò)對(duì)象的屬性名獲取屬性值。
①在ParameterMapper接口中
②在 ParameterMapper.xml配置類(lèi)
③測(cè)試
5.使用@Param標(biāo)識(shí)參數(shù)
可以通過(guò)@Param注解標(biāo)識(shí)mapper接口的方法參數(shù),此時(shí)參數(shù)會(huì)放在map集合中
①以@Param注解的value屬性值為鍵,參數(shù)值為值
②以param1,param2為鍵。以參數(shù)為值
2.通過(guò)#{}或${}訪(fǎng)問(wèn)map集合的鍵可以獲取對(duì)應(yīng)的值
①在ParameterMapper接口中
②在 ParameterMapper.xml配置類(lèi)
③測(cè)試
到此這篇關(guān)于MyBatis獲取參數(shù)值的兩種方式詳解的文章就介紹到這了,更多相關(guān)MyBatis獲取參數(shù)值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
我用java實(shí)現(xiàn)了王者榮耀的皮膚和英雄技能
上篇文章主要實(shí)現(xiàn)了創(chuàng)建英雄,創(chuàng)建野怪,創(chuàng)建裝備.并且實(shí)現(xiàn)了簡(jiǎn)單的刷怪,購(gòu)買(mǎi)裝備等.本篇文章我優(yōu)化了我的操作界面,并且實(shí)現(xiàn)了英雄技能,英雄皮膚等,需要的朋友可以參考下2021-05-05基于SpringBoot實(shí)現(xiàn)大文件分塊上傳功能
這篇文章主要介紹了基于SpringBoot實(shí)現(xiàn)大文件分塊上傳功能,實(shí)現(xiàn)原理其實(shí)很簡(jiǎn)單,核心就是客戶(hù)端把大文件按照一定規(guī)則進(jìn)行拆分,比如20MB為一個(gè)小塊,分解成一個(gè)一個(gè)的文件塊,然后把這些文件塊單獨(dú)上傳到服務(wù)端,需要的朋友可以參考下2024-09-09Mybatis 實(shí)現(xiàn)一個(gè)搜索框?qū)Χ鄠€(gè)字段進(jìn)行模糊查詢(xún)
這篇文章主要介紹了Mybatis 實(shí)現(xiàn)一個(gè)搜索框?qū)Χ鄠€(gè)字段進(jìn)行模糊查詢(xún),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01SpringBoot項(xiàng)目實(shí)現(xiàn)短信發(fā)送接口開(kāi)發(fā)的實(shí)踐
本文主要介紹了SpringBoot項(xiàng)目實(shí)現(xiàn)短信發(fā)送接口開(kāi)發(fā)的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10java http token請(qǐng)求代碼實(shí)例
這篇文章主要介紹了java http token請(qǐng)求,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03java設(shè)計(jì)模式之橋接模式(Bridge)
這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之橋接模式Bridge,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01SpringMVC的簡(jiǎn)單傳值(實(shí)現(xiàn)代碼)
下面小編就為大家?guī)?lái)一篇SpringMVC的簡(jiǎn)單傳值(實(shí)現(xiàn)代碼)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05Java cookie和session會(huì)話(huà)技術(shù)介紹
session的工作原理和cookie非常類(lèi)似,在cookie中存放一個(gè)sessionID,真實(shí)的數(shù)據(jù)存放在服務(wù)器端,客戶(hù)端每次發(fā)送請(qǐng)求的時(shí)候帶上sessionID,服務(wù)端根據(jù)sessionID進(jìn)行數(shù)據(jù)的響應(yīng)2023-04-04