国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

三亞網(wǎng)站建設(shè)介紹首頁(yè)

三亞網(wǎng)站建設(shè)介紹,首頁(yè),seo管理系統(tǒng)易語(yǔ)言,學(xué)校做網(wǎng)站的軟件目錄 Mybatis中Like模糊查詢?nèi)N處理方式 1.通過(guò)單引號(hào)拼接${} 1)mapper接口 2)Mapper.xml 3)測(cè)試代碼 4) 測(cè)試結(jié)果 2.通過(guò)concat()函數(shù)拼接(個(gè)人推薦使用這種) 1)mapper接口 2)Mapper.xml 3)測(cè)試代碼 4) 測(cè)…

目錄

Mybatis中Like模糊查詢?nèi)N處理方式

1.通過(guò)單引號(hào)拼接+${}

1)mapper接口

2)Mapper.xml

3)測(cè)試代碼

4) 測(cè)試結(jié)果

2.通過(guò)concat()函數(shù)拼接(個(gè)人推薦使用這種)

1)mapper接口

2)Mapper.xml

3)測(cè)試代碼

4) 測(cè)試結(jié)果

3.通過(guò)"%"#{}"%"?

1)mapper接口

2)Mapper.xml

3)測(cè)試代碼

4) 測(cè)試結(jié)果

附加

1.User實(shí)體

2.LikeMapper類

3.LikeMapperTest代碼

4.LikeMapper.xml文件

5.表結(jié)構(gòu)?


Mybatis中Like模糊查詢?nèi)N處理方式

1.通過(guò)單引號(hào)拼接+${}

????????這種方法使用了字符串替換的方式來(lái)進(jìn)行模糊查詢。但是這種方式存在SQL注入的風(fēng)險(xiǎn),因?yàn)?code>"${name}"會(huì)直接將變量值插入到SQL語(yǔ)句中,如果輸入沒(méi)有經(jīng)過(guò)適當(dāng)?shù)倪^(guò)濾,則可能會(huì)導(dǎo)致安全問(wèn)題。

:在XML文件中不建議使用'%${name}%'的方式,而是應(yīng)該使用concat()或者%' + #{name} + '% '來(lái)避免SQL注入。?

1)mapper接口

/*** 通過(guò)單引號(hào)拼接+${}*/
public List<User> getLikeBySingleQuote(String name);

2)Mapper.xml

<!--單引號(hào)拼接+${}-->
<select id="getLikeBySingleQuote" resultType="org.xiji.enty.User">select * from user where username like '%${name}%'
</select>

3)測(cè)試代碼

/*** 通過(guò)單引號(hào)拼接+${}*   '%${}%'*/
@Test
public void testGetLikeBySingleQuote(){String name = "xiji";List<User> likeBySingleQuote = likeMapper.getLikeBySingleQuote(name);System.out.println(likeBySingleQuote.toString());
}

4) 測(cè)試結(jié)果

2.通過(guò)concat()函數(shù)拼接(個(gè)人推薦使用這種)

????????使用數(shù)據(jù)庫(kù)的concat()函數(shù)可以避免SQL注入的問(wèn)題,并且是跨平臺(tái)的(MySQL, PostgreSQL等支持concat()或類似函數(shù))。

1)mapper接口

/*** 通過(guò)ConCat函數(shù)拼接**/
public List<User> getLikeByConCat(String name);

2)Mapper.xml

<!--concat函數(shù)拼接-->
<select id="getLikeByConCat" resultType="org.xiji.enty.User">select * from user where username like concat('%',#{name},'%')
</select>

3)測(cè)試代碼

/*** 通過(guò)concat函數(shù)拼接*   concat('%',#{name},'%')*/
@Test
public void testGetLikeByConCat(){String name = "xiji";List<User> likeByConCat = likeMapper.getLikeByConCat(name);System.out.println(likeByConCat.toString());
}

4) 測(cè)試結(jié)果

3.通過(guò)"%"#{}"%"?

????????這種方式也是安全的,并且簡(jiǎn)潔。它使用了MyBatis的預(yù)編譯功能,自動(dòng)對(duì)參數(shù)進(jìn)行轉(zhuǎn)義,防止SQL注入攻擊。

注:雖然使用'%'#{name}'%'看起來(lái)簡(jiǎn)潔,但是在某些情況下,如果name包含特殊字符,可能需要進(jìn)一步的處理來(lái)保證安全性和正確性。因此,推薦使用concat()函數(shù)來(lái)構(gòu)建LIKE語(yǔ)句。

1)mapper接口

/*** 通過(guò) “%”#{}“%” 拼接*/
public List<User> getLikeByPercent(String name);

2)Mapper.xml

<!-- "%"#{}"%"  -->
<select id="getLikeByPercent" resultType="org.xiji.enty.User">select  * from user where username like "%"#{name}"%"
</select>

3)測(cè)試代碼

/***  通過(guò)通過(guò) "%"#{}"%" 拼接*   like '%#{name}%'*/@Test
public void testGetLikeByPercent(){String name = "xiji";List<User> likeByPercent = likeMapper.getLikeByPercent(name);System.out.println(likeByPercent.toString());
}

4) 測(cè)試結(jié)果

附加

1.User實(shí)體

package org.xiji.enty;public class User {private  int id;private String username;private String password;private String userInfo;public User() {}public User(int id, String username, String password, String userInfo) {this.id = id;this.username = username;this.password = password;this.userInfo = userInfo;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getUserInfo() {return userInfo;}public void setUserInfo(String userInfo) {this.userInfo = userInfo;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +", userInfo='" + userInfo + '\'' +'}';}
}

2.LikeMapper類

package org.xiji.mapper;import org.apache.ibatis.annotations.Mapper;
import org.xiji.enty.User;import java.util.List;/*** 模糊查詢的三種方式*/
@Mapper
public interface LikeMapper {/*** 通過(guò)單引號(hào)拼接+${}*/public List<User> getLikeBySingleQuote(String name);/*** 通過(guò)ConCat函數(shù)拼接**/public List<User> getLikeByConCat(String name);/*** 通過(guò) “%”#{}“%” 拼接*/public List<User> getLikeByPercent(String name);}

3.LikeMapperTest代碼

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.xiji.enty.User;
import org.xiji.mapper.LikeMapper;import java.util.List;@SpringJUnitConfig(locations = {"classpath:springConfig.xml"})
public class LikeMapperTest {@Autowiredprivate LikeMapper likeMapper;/*** 通過(guò)單引號(hào)拼接+${}*   '%${}%'*/@Testpublic void testGetLikeBySingleQuote(){String name = "xiji";List<User> likeBySingleQuote = likeMapper.getLikeBySingleQuote(name);System.out.println(likeBySingleQuote.toString());}/*** 通過(guò)concat函數(shù)拼接*   concat('%',#{name},'%')*/@Testpublic void testGetLikeByConCat(){String name = "xiji";List<User> likeByConCat = likeMapper.getLikeByConCat(name);System.out.println(likeByConCat.toString());}/***  通過(guò)通過(guò) “%”#{}“%” 拼接*   like '%#{name}%'*/@Testpublic void testGetLikeByPercent(){String name = "xiji";List<User> likeByPercent = likeMapper.getLikeByPercent(name);System.out.println(likeByPercent.toString());}}

4.LikeMapper.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.xiji.mapper.LikeMapper"><!--模糊查詢的三種方式--><!--單引號(hào)拼接+${}--><select id="getLikeBySingleQuote" resultType="org.xiji.enty.User">select * from user where username like '%${name}%'</select><!--concat函數(shù)拼接--><select id="getLikeByConCat" resultType="org.xiji.enty.User">select * from user where username like concat('%',#{name},'%')</select><!-- ”%“#{}“%”  --><select id="getLikeByPercent" resultType="org.xiji.enty.User">select  * from user where username like "%"#{name}"%"</select>
</mapper>

5.表結(jié)構(gòu)?

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (`id` int NOT NULL AUTO_INCREMENT COMMENT '用戶id',`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用戶名字',`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用戶密碼',`userInfo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用戶信息',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;

http://aloenet.com.cn/news/36760.html

相關(guān)文章:

  • 怎么做網(wǎng)盤(pán)搜索引擎網(wǎng)站抖音怎么推廣
  • 網(wǎng)站設(shè)計(jì)第一步怎么做今日國(guó)內(nèi)新聞10則
  • 站長(zhǎng)平臺(tái)有哪些百度平臺(tái)營(yíng)銷軟件
  • 建筑專業(yè)網(wǎng)站文明seo技術(shù)教程網(wǎng)
  • wordpress 添加icp舟山百度seo
  • 網(wǎng)站右邊跳出的廣告怎么做可以推廣的軟件有哪些
  • 惠民網(wǎng)站建設(shè)淺議網(wǎng)絡(luò)營(yíng)銷論文
  • 休閑旅游產(chǎn)品營(yíng)銷網(wǎng)站的建設(shè)策略app運(yùn)營(yíng)
  • 深圳高端網(wǎng)站開(kāi)發(fā)網(wǎng)絡(luò)營(yíng)銷的優(yōu)勢(shì)有哪些?
  • 外貿(mào)網(wǎng)站推廣實(shí)操手冊(cè)2023年新聞小學(xué)生摘抄
  • 怎么建立自己的網(wǎng)站平臺(tái)多少錢(qián)南寧seo優(yōu)化公司排名
  • 黃江鎮(zhèn)做網(wǎng)站在線生成個(gè)人網(wǎng)站源碼
  • 自己做網(wǎng)站 發(fā)布視頻北京自動(dòng)seo
  • 建設(shè)部舉報(bào)網(wǎng)站西安網(wǎng)站建設(shè)方案優(yōu)化
  • 凡科建站可以多人協(xié)作編輯嗎北京百度快照推廣公司
  • 渭南做網(wǎng)站的公司河北高端網(wǎng)站建設(shè)
  • 網(wǎng)站開(kāi)發(fā)人員要求科技網(wǎng)站建設(shè)公司
  • 綁定網(wǎng)站品牌策劃與推廣方案
  • 建一個(gè)購(gòu)物網(wǎng)站需要多少錢(qián)邯鄲今日頭條最新消息
  • 免費(fèi)個(gè)人網(wǎng)站建設(shè)可口可樂(lè)軟文營(yíng)銷案例
  • 惠州網(wǎng)站開(kāi)發(fā)公司網(wǎng)頁(yè)
  • 建網(wǎng)站怎么避免備案百度推廣課程
  • 可以做哪些網(wǎng)站我想自己建立一個(gè)網(wǎng)站
  • 做網(wǎng)站怎么找優(yōu)質(zhì)客戶軟文寫(xiě)作技巧有哪些
  • 公安內(nèi)網(wǎng)網(wǎng)站建設(shè)方案站群seo
  • 個(gè)人網(wǎng)站備案需要哪些資料網(wǎng)站單向外鏈推廣工具
  • 做網(wǎng)站 單頁(yè)數(shù)量網(wǎng)絡(luò)營(yíng)銷的步驟
  • 網(wǎng)站建設(shè)費(fèi)用細(xì)項(xiàng)廣州seo推廣公司
  • 中英網(wǎng)站的設(shè)計(jì)app開(kāi)發(fā)費(fèi)用一覽表
  • 上海網(wǎng)站建設(shè)百家號(hào)廣告投放推廣平臺(tái)