中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

福州產(chǎn)品網(wǎng)頁制作的公司電商seo與sem是什么

福州產(chǎn)品網(wǎng)頁制作的公司,電商seo與sem是什么,沒有備案做盈利性的網(wǎng)站違法嗎,倉庫出入庫管理系統(tǒng)一、參數(shù)值的兩種方式#{}和${} 在 MyBatis 中,可以使用兩種方式來獲取參數(shù)值:#{} 和 ${}。 1. #{}:這是 MyBatis 推薦使用的方式。在 SQL 語句中使用 #{},MyBatis 會(huì)自動(dòng)將參數(shù)值進(jìn)行預(yù)編譯處理,防止 SQL 注入攻擊&a…

一、參數(shù)值的兩種方式#{}和${}

在 MyBatis 中,可以使用兩種方式來獲取參數(shù)值:#{} 和 ${}。

1. #{}:這是 MyBatis 推薦使用的方式。在 SQL 語句中使用 #{},MyBatis 會(huì)自動(dòng)將參數(shù)值進(jìn)行預(yù)編譯處理,防止 SQL 注入攻擊,并且可以處理各種類型的參數(shù)(如字符串、數(shù)字、日期等)。例如:

    <select id="getUserById" resultType="User">SELECT * FROM user WHERE id = #{id}</select>

在這個(gè)例子中,#{id} 表示一個(gè)參數(shù)占位符,MyBatis 會(huì)將它替換為具體的參數(shù)值。?

2. ${}:這種方式會(huì)直接將參數(shù)值拼接到 SQL 語句中,不做預(yù)編譯處理。這種方式適用于在 SQL 語句中引用列名、表名等無法使用 #{} 替換的情況。但需要注意的是,使用 ${} 可能會(huì)導(dǎo)致 SQL 注入攻擊的風(fēng)險(xiǎn),因此需要謹(jǐn)慎使用。例如:

    <select id="getUserByName" resultType="User">SELECT * FROM user WHERE name = '${name}'</select>

在這個(gè)例子中,#{id} 表示一個(gè)參數(shù)占位符,MyBatis 會(huì)將它替換為具體的參數(shù)值。

MyBatis獲取參數(shù)值的兩種方式:${}和#{}
${}的本質(zhì)就是字符串拼接,#{}的本質(zhì)就是占位符賦值
${}使用字符串拼接的方式拼接sql,若為字符串類型或日期類型的字段進(jìn)行賦值時(shí),需要手動(dòng)加單引號(hào);但是#{}使用占位符賦值的方式拼接sql,此時(shí)為字符串類型或日期類型的字段進(jìn)行賦值時(shí),可以自動(dòng)添加單引號(hào)
?

二、獲取參數(shù)值的各種情況

2.1? ?單個(gè)字面量類型的參數(shù)

  • 若mapper接口中的方法參數(shù)為單個(gè)的字面量類型,此時(shí)可以使用${}和#{}以任意的名稱(最好見名識(shí)意)獲取參數(shù)的值,注意${}需要手動(dòng)加單引號(hào)
    <!--User getUserByUsername(String username);--><select id="getUserByUsername" resultType="User">select * from t_user where username = #{username}</select>
    <!--User getUserByUsername(String username);--><select id="getUserByUsername" resultType="User">  select * from t_user where username = '${username}'  </select>

2.2??多個(gè)字面量類型的參數(shù)

若mapper接口中的方法參數(shù)為多個(gè)時(shí),此時(shí)MyBatis會(huì)自動(dòng)將這些參數(shù)放在一個(gè)map集合中。
①? 以arg0,arg1…為鍵,以參數(shù)為值;
②? 以param1,param2…為鍵,以參數(shù)為值;
因此只需要通過${}和#{}訪問map集合的鍵就可以獲取相對應(yīng)的值,注意${}需要手動(dòng)加單引號(hào)。
使用arg或者param都行,要注意的是,arg是從arg0開始的,param是從param1開始的

    <!--User checkLogin(String username,String password);--><select id="checkLogin" resultType="User">  select * from t_user where username = #{arg0} and password = #{arg1}  </select>
    <!--User checkLogin(String username,String password);--><select id="checkLogin" resultType="User">select * from t_user where username = '${param1}' and password = '${param2}'</select>

2.3??map集合類型的參數(shù)

  • 若mapper接口中的方法需要的參數(shù)為多個(gè)時(shí),此時(shí)可以手動(dòng)創(chuàng)建map集合,將這些數(shù)據(jù)放在map中只需要通過${}和#{}訪問map集合的鍵就可以獲取相對應(yīng)的值,注意${}需要手動(dòng)加單引號(hào)
    <!--User checkLoginByMap(Map<String,Object> map);--><select id="checkLoginByMap" resultType="User">select * from t_user where username = #{username} and password = #{password}</select>
    @Testpublic void checkLoginByMap() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);Map<String,Object> map = new HashMap<>();map.put("usermane","admin");map.put("password","123456");User user = mapper.checkLoginByMap(map);System.out.println(user);}

2.4??實(shí)體類類型的參數(shù)

  • 若mapper接口中的方法參數(shù)為實(shí)體類對象時(shí)此時(shí)可以使用${}和#{},通過訪問實(shí)體類對象中的屬性名獲取屬性值,注意${}需要手動(dòng)加單引號(hào)
    <!--int insertUser(User user);--><insert id="insertUser">insert into t_user values(null,#{username},#{password},#{age},#{sex},#{email})</insert>
    @Testpublic void insertUser() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);User user = new User(null,"Tom","123456",12,"男","123@321.com");mapper.insertUser(user);}

2.5??使用@Param標(biāo)識(shí)參數(shù)

可以通過@Param注解標(biāo)識(shí)mapper接口中的方法參數(shù),此時(shí),會(huì)將這些參數(shù)放在map集合中

  1. 以@Param注解的value屬性值為鍵,以參數(shù)為值;
  2. 以param1,param2…為鍵,以參數(shù)為值;
  • 只需要通過${}和#{}訪問map集合的鍵就可以獲取相對應(yīng)的值,注意${}需要手動(dòng)加單引號(hào)
<!--User CheckLoginByParam(@Param("username") String username, @Param("password") String password);--><select id="CheckLoginByParam" resultType="User">select * from t_user where username = #{username} and password = #{password}</select>
    @Testpublic void checkLoginByParam() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);mapper.CheckLoginByParam("admin","123456");}

三、總結(jié)

  • 建議分成兩種情況進(jìn)行處理
    1. 實(shí)體類類型的參數(shù)
    2. 使用@Param標(biāo)識(shí)參數(shù)

四、補(bǔ)貼知識(shí)點(diǎn):以map集合接收作為返回值類型

4.1??查詢一條數(shù)據(jù)為map集合

/**  * 根據(jù)用戶id查詢用戶信息為map集合  * @param id  * @return  */  
Map<String, Object> getUserToMap(@Param("id") int id);
<!--Map<String, Object> getUserToMap(@Param("id") int id);-->
<select id="getUserToMap" resultType="map">select * from t_user where id = #{id}
</select>
<!--結(jié)果:{password=123456, sex=男, id=1, age=23, username=admin}-->

4.2??查詢多條數(shù)據(jù)為map集合

4.2.1? 方法一

/**  * 查詢所有用戶信息為map集合  * @return  * 將表中的數(shù)據(jù)以map集合的方式查詢,一條數(shù)據(jù)對應(yīng)一個(gè)map;若有多條數(shù)據(jù),就會(huì)產(chǎn)生多個(gè)map集合,此時(shí)可以將這些map放在一個(gè)list集合中獲取  */  
List<Map<String, Object>> getAllUserToMap();
<!--Map<String, Object> getAllUserToMap();-->  
<select id="getAllUserToMap" resultType="map">  select * from t_user  
</select>
<!--結(jié)果:[{password=123456, sex=男, id=1, age=23, username=admin},{password=123456, sex=男, id=2, age=23, username=張三},{password=123456, sex=男, id=3, age=23, username=張三}]
-->

4.2.2? 方法二

/*** 查詢所有用戶信息為map集合* @return* 將表中的數(shù)據(jù)以map集合的方式查詢,一條數(shù)據(jù)對應(yīng)一個(gè)map;若有多條數(shù)據(jù),就會(huì)產(chǎn)生多個(gè)map集合,并且最終要以一個(gè)map的方式返回?cái)?shù)據(jù),此時(shí)需要通過@MapKey注解設(shè)置map集合的鍵,值是每條數(shù)據(jù)所對應(yīng)的map集合*/
@MapKey("id")
Map<String, Object> getAllUserToMap();
<!--Map<String, Object> getAllUserToMap();-->
<select id="getAllUserToMap" resultType="map">select * from t_user
</select>
<!--結(jié)果:{1={password=123456, sex=男, id=1, age=23, username=admin},2={password=123456, sex=男, id=2, age=23, username=張三},3={password=123456, sex=男, id=3, age=23, username=張三}}
-->

?

http://www.risenshineclean.com/news/65303.html

相關(guān)文章:

  • 電子商務(wù)學(xué)了有用嗎上海搜索排名優(yōu)化公司
  • 鐵嶺網(wǎng)站開發(fā)公司百度開戶聯(lián)系方式
  • 常州公誠建設(shè)項(xiàng)目管理有限公司官方網(wǎng)站百度推廣一年多少錢
  • 南京哪家公司做企業(yè)網(wǎng)站 做得比較好游戲推廣員怎么做
  • wordpress 英文企業(yè)站網(wǎng)絡(luò)營銷團(tuán)隊(duì)
  • 建材外貿(mào)網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣精準(zhǔn)營銷推廣
  • PHP網(wǎng)站開發(fā)工程師中央下令全國各地核酸檢測
  • 哪個(gè)網(wǎng)站專門做代購網(wǎng)站建設(shè)流程圖
  • 怎樣注冊自己網(wǎng)站網(wǎng)上營銷是做什么的
  • 北京網(wǎng)站建設(shè)培訓(xùn)機(jī)構(gòu)什么都能搜的瀏覽器
  • 建立網(wǎng)站的費(fèi)用大連百度關(guān)鍵詞排名
  • asp動(dòng)態(tài)網(wǎng)站開發(fā) php企業(yè)查詢信息平臺(tái)
  • 做網(wǎng)站設(shè)計(jì)的公司柳州鄭州黑帽seo培訓(xùn)
  • 做電子傳單的網(wǎng)站如何建網(wǎng)站教程
  • 與眾不同的網(wǎng)站網(wǎng)絡(luò)服務(wù)運(yùn)營商
  • 如何做網(wǎng)站frontpageseo方案
  • 牡丹江疫情最新通知關(guān)鍵詞優(yōu)化的策略有哪些
  • 深圳網(wǎng)絡(luò)營銷網(wǎng)站建設(shè)廣州百度關(guān)鍵詞搜索
  • 長春網(wǎng)站優(yōu)化流程南通seo網(wǎng)站優(yōu)化軟件
  • 企業(yè)畫冊印刷西安網(wǎng)絡(luò)優(yōu)化哪家好
  • 福州網(wǎng)站建設(shè)哪里有企業(yè)宣傳片文案
  • 那個(gè)網(wǎng)站可以看高速的建設(shè)情況百度網(wǎng)站是什么
  • 網(wǎng)站建設(shè)dqcx百度推廣400電話
  • 手工制作大全簡單又漂亮seo推廣策劃
  • 網(wǎng)頁設(shè)計(jì)超鏈接實(shí)驗(yàn)報(bào)告北京seo顧問外包
  • wordpress rss 下一頁seo標(biāo)題優(yōu)化關(guān)鍵詞怎么選
  • 怎么做網(wǎng)站 有空間注冊網(wǎng)站需要多少錢?
  • 學(xué)校網(wǎng)站建設(shè)申請報(bào)告網(wǎng)絡(luò)推廣員有前途嗎
  • 百度聯(lián)盟做網(wǎng)站賺錢國內(nèi)建站平臺(tái)有哪些
  • 西安最好的互聯(lián)網(wǎng)公司排名泉州seo代理商