MyBatis獲取參數(shù)值的兩種方式詳解
MyBatis配置相關(guān)模板
1.核心配置文件的模板

2.映射文件模板

3.封裝SqlSessionUtils工具類

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,若為字符串類型或日期類型的字段進(jìn)行賦值時(shí),需要手動加單引號。
- #{}使用占位符賦值的方式拼接sql,若為字符串類型或日期類型的字段進(jìn)行賦值時(shí),需要自動加單引號。

1.單個(gè)字面量類型的參數(shù)
若mapper接口的方法參數(shù)為單個(gè)的字面量類型,此時(shí)可以使用${}和#{}以任意的名稱獲取參數(shù)值。${}需要手動加引號
①在ParameterMapper接口上

②在ParameterMapper.xml上
用#{username}- username可任意替換

用’${username}’ - username可任意替換

③測試

2.多個(gè)字面量類型的參數(shù)
- 若mapper接口的方法參數(shù)是多個(gè)時(shí),此時(shí)MyBatis會自動的將這些參數(shù)放在一個(gè)map集合中以arg0,arg1…為鍵,以參數(shù)為值或者以param1,param2為鍵,以參數(shù)為值
- 此時(shí)通過${}和#{}訪問map集合的鍵會獲取對應(yīng)的值
①在ParameterMapper接口中

②在 ParameterMapper.xml配置類

③測試

3.map集合類型的參數(shù)
若map接口的方法參數(shù)為多個(gè),可以手動創(chuàng)建map集合,通過#{}和${}訪問map集合的鍵獲取對應(yīng)的值
①在ParameterMapper接口中

②在 ParameterMapper.xml配置類

③測試

4.實(shí)體類類型的參數(shù)
若mapper接口的方法參數(shù)是實(shí)體類對象,可以使用${}或#{}通過對象的屬性名獲取屬性值。
①在ParameterMapper接口中

②在 ParameterMapper.xml配置類

③測試

5.使用@Param標(biāo)識參數(shù)
可以通過@Param注解標(biāo)識mapper接口的方法參數(shù),此時(shí)參數(shù)會放在map集合中
①以@Param注解的value屬性值為鍵,參數(shù)值為值
②以param1,param2為鍵。以參數(shù)為值
2.通過#{}或${}訪問map集合的鍵可以獲取對應(yīng)的值
①在ParameterMapper接口中

②在 ParameterMapper.xml配置類

③測試

到此這篇關(guān)于MyBatis獲取參數(shù)值的兩種方式詳解的文章就介紹到這了,更多相關(guān)MyBatis獲取參數(shù)值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
我用java實(shí)現(xiàn)了王者榮耀的皮膚和英雄技能
上篇文章主要實(shí)現(xiàn)了創(chuàng)建英雄,創(chuàng)建野怪,創(chuàng)建裝備.并且實(shí)現(xiàn)了簡單的刷怪,購買裝備等.本篇文章我優(yōu)化了我的操作界面,并且實(shí)現(xiàn)了英雄技能,英雄皮膚等,需要的朋友可以參考下2021-05-05
基于SpringBoot實(shí)現(xiàn)大文件分塊上傳功能
這篇文章主要介紹了基于SpringBoot實(shí)現(xiàn)大文件分塊上傳功能,實(shí)現(xiàn)原理其實(shí)很簡單,核心就是客戶端把大文件按照一定規(guī)則進(jìn)行拆分,比如20MB為一個(gè)小塊,分解成一個(gè)一個(gè)的文件塊,然后把這些文件塊單獨(dú)上傳到服務(wù)端,需要的朋友可以參考下2024-09-09
Mybatis 實(shí)現(xiàn)一個(gè)搜索框?qū)Χ鄠€(gè)字段進(jìn)行模糊查詢
這篇文章主要介紹了Mybatis 實(shí)現(xiàn)一個(gè)搜索框?qū)Χ鄠€(gè)字段進(jìn)行模糊查詢,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
SpringBoot項(xiàng)目實(shí)現(xiàn)短信發(fā)送接口開發(fā)的實(shí)踐
本文主要介紹了SpringBoot項(xiàng)目實(shí)現(xiàn)短信發(fā)送接口開發(fā)的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
java設(shè)計(jì)模式之橋接模式(Bridge)
這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之橋接模式Bridge,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
SpringMVC的簡單傳值(實(shí)現(xiàn)代碼)
下面小編就為大家?guī)硪黄猄pringMVC的簡單傳值(實(shí)現(xiàn)代碼)。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
Java cookie和session會話技術(shù)介紹
session的工作原理和cookie非常類似,在cookie中存放一個(gè)sessionID,真實(shí)的數(shù)據(jù)存放在服務(wù)器端,客戶端每次發(fā)送請求的時(shí)候帶上sessionID,服務(wù)端根據(jù)sessionID進(jìn)行數(shù)據(jù)的響應(yīng)2023-04-04

