最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于通過Java連接mysql對反斜杠”\“轉(zhuǎn)義的測試詳解

 更新時間:2017年06月16日 09:27:40   作者:Juwend  
這篇文章主要給大家介紹了關(guān)于通過Java連接mysql對反斜杠”\“轉(zhuǎn)義的測試的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家理解反斜杠”\“轉(zhuǎn)義具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。

前言

在java中,反斜杠“\”轉(zhuǎn)義是“\”,因此表示一個“\”要使用“\\”,如果是正則表達(dá)式,那么表示一個“\”需要用“\\\\”,在mysql中,反斜杠轉(zhuǎn)義依然是“\”,和java相同。

現(xiàn)在問題是:如果mysql中一個字段的內(nèi)容包含反斜杠,然后通過java連接mysql去篩選這個字段所在的條目,要怎么寫才能將該字段篩選出來呢?下面就是一個實(shí)驗(yàn):

1,先建立測試數(shù)據(jù):

CREATE TABLE `test` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`id`)
);
insert into test (name) values ('\\'), ('\\\\');

向數(shù)據(jù)庫中插入2條數(shù)據(jù),name的值分別是“\”和“\\”。

2,使用jdbc連接mysql,然后測試篩選條件:

Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
PreparedStatement pstmt = conn.prepareStatement("select * from test where *條件"); // “*條件”見下文
pstmt.setString(1, "*篩選值"); // “*篩選值”見下文
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
 System.out.println(rs.getString("name"));
}

3,測試:

i.

*條件 為:name = ?

*篩選值 為:

“\\”可以篩選出name為“\”的數(shù)據(jù)

“\\\\”可以篩選出name為“\\”的數(shù)據(jù)

這個看起來是比較正常的

ii.

*條件 為:name like ?

*篩選值 為:

“\\”或“”\\\\可以篩選出name為“\”的數(shù)據(jù)

“\\\\\\”或“\\\\\\\\”可以篩選出name為“\\”的數(shù)據(jù)

開始不變得奇怪了…

iii.

*條件 為:name like ‘%' ?

*篩選值 為:

“\\”或“\\\\”可以篩選出name為“\”和“\\”的數(shù)據(jù)

“\\\\\\”或“\\\\\\\\”可以篩選出name為“\\”的數(shù)據(jù)

和 ii. 有點(diǎn)類似

iv.

*條件 為:name like ? ‘%'

*篩選值 為:

“\\\\”可以篩選出name為“\”和“\\”的數(shù)據(jù)

“\\\\\\\\”可以篩選出name為“\\”的數(shù)據(jù)

又變得好像正常了…類似正則中的轉(zhuǎn)義

v.

*條件 為:name like ‘%' ? ‘%'

*篩選值 為:

“\\\\”可以篩選出name為“\”和“\\”的數(shù)據(jù)

“\\\\\\\\”可以篩選出name為“\\”的數(shù)據(jù)

和 iv. 類似了

4,分析:

使用“=”方式篩選貌似就是常規(guī)理解中的轉(zhuǎn)義,但是一旦使用了“l(fā)ike”就開始變得奇怪了,從測試來看,使用“l(fā)ike”篩選有些類似正則式,不過沒有使用“%”占位符的篩選中常規(guī)轉(zhuǎn)義依然有效,另外,奇怪的是 ii. 和 iii. 中的6根反斜杠是個什么鬼…完全不能理解…

5,結(jié)論:

sql語句是“=”篩選時,java就使用常規(guī)轉(zhuǎn)義即可

sql語句是“l(fā)ike”篩選時,最好使用正則式轉(zhuǎn)義

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Java中JSONObject與JSONArray的使用區(qū)別詳解

    Java中JSONObject與JSONArray的使用區(qū)別詳解

    這篇文章主要介紹了Java中JSONObject與JSONArray的使用區(qū)別詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • java學(xué)習(xí)筆記之eclipse+tomcat 配置

    java學(xué)習(xí)筆記之eclipse+tomcat 配置

    俗話說:工欲善其事必先利其器,既然要學(xué)習(xí)java,首先把java的開發(fā)環(huán)境搗鼓一下吧,這里我們來談?wù)別clipse+tomcat的配置方法。
    2014-11-11
  • Mybatis批量更新報(bào)錯問題

    Mybatis批量更新報(bào)錯問題

    這篇文章主要介紹了Mybatis批量更新報(bào)錯的問題及解決辦法,包括mybatis批量更新的兩種方式,需要的的朋友參考下
    2017-01-01
  • Linux?Ubuntu系統(tǒng)下配置JDK環(huán)境、MySQL環(huán)境全過程

    Linux?Ubuntu系統(tǒng)下配置JDK環(huán)境、MySQL環(huán)境全過程

    眾所周知Ubuntu是一種基于Linux的操作系統(tǒng),它提供了一個穩(wěn)定、安全和易于使用的環(huán)境,下面這篇文章主要給大家介紹了關(guān)于Linux?Ubuntu系統(tǒng)下配置JDK環(huán)境、MySQL環(huán)境的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • Java通過What、Why、How了解弱引用

    Java通過What、Why、How了解弱引用

    這篇文章主要介紹了Java通過What、Why、How了解弱引用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • java源碼解析之String類的compareTo(String otherString)方法

    java源碼解析之String類的compareTo(String otherString)方法

    這篇文章主要給大家介紹了關(guān)于java源碼解析之String類的compareTo(String otherString)方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • 深入理解Mybatis中的resultType和resultMap

    深入理解Mybatis中的resultType和resultMap

    這篇文章給大家介紹了mybatis中的resultType和resultMap的用法實(shí)例講解,MyBatis中在查詢進(jìn)行select映射的時候,返回類型可以用resultType,也可以用resultMap,至于兩種用法區(qū)別,通過本文一起學(xué)習(xí)吧
    2016-09-09
  • 淺析Java SPI 與 dubbo SPI

    淺析Java SPI 與 dubbo SPI

    在Java中SPI是被用來設(shè)計(jì)給服務(wù)提供商做插件使用的。本文重點(diǎn)給大家介紹Java SPI 與 dubbo SPI的相關(guān)知識及區(qū)別介紹,感興趣的朋友跟隨小編一起學(xué)習(xí)下吧
    2021-05-05
  • Maven在不同的環(huán)境獲取不同配置文件的方法

    Maven在不同的環(huán)境獲取不同配置文件的方法

    這篇文章主要介紹了Maven在不同的環(huán)境獲取不同配置文件的方法,需要的朋友可以參考下
    2023-10-10
  • springboot如何添加全局異常捕獲類

    springboot如何添加全局異常捕獲類

    這篇文章主要介紹了springboot如何添加全局異常捕獲類,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01

最新評論

莱芜市| 宜章县| 会宁县| 张北县| 曲阜市| 中江县| 改则县| 喀什市| 报价| 七台河市| 常德市| 定安县| 商城县| 菏泽市| 汶上县| 兴城市| 黑龙江省| 通城县| 从江县| 凤山县| 孝昌县| 灵山县| 巩义市| 额敏县| 哈巴河县| 景洪市| 略阳县| 马龙县| 南雄市| 涡阳县| 洛川县| 武陟县| 麻阳| 米易县| 常山县| 且末县| 江西省| 正定县| 防城港市| 固原市| 霍山县|