卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java實(shí)訓(xùn)個(gè)人總結(jié) java中Statement詳細(xì)用法有什么?

java中Statement詳細(xì)用法有什么?簡(jiǎn)單介紹如下: Statement 是 Java 執(zhí)行數(shù)據(jù)庫(kù)操作的一個(gè)重要方法,用于在已經(jīng)建立數(shù)據(jù)庫(kù)連接的基礎(chǔ)上,向數(shù)據(jù)庫(kù)發(fā)送要執(zhí)行的SQL語(yǔ)

java中Statement詳細(xì)用法有什么?

簡(jiǎn)單介紹如下: Statement 是 Java 執(zhí)行數(shù)據(jù)庫(kù)操作的一個(gè)重要方法,用于在已經(jīng)建立數(shù)據(jù)庫(kù)連接的基礎(chǔ)上,向數(shù)據(jù)庫(kù)發(fā)送要執(zhí)行的SQL語(yǔ)句。Statement對(duì)象,用于執(zhí)行不帶參數(shù)的簡(jiǎn)單SQL語(yǔ)句。 與此差不多的還有PreparedStatement,PreparedStatement 繼承了Statement,一般如果已經(jīng)是稍有水平開(kāi)發(fā)者,應(yīng)該以PreparedStatement代替Statement。

java中preparedstatement為什么可以防止sql注入?

不知道樓主用沒(méi)有用過(guò)

select * from tab_name where name= "" name "" and passwd="" passwd ""

把其中passwd換成 [" or "1" = "1] 這樣就可以完成sql注入

更有可能對(duì)你的數(shù)據(jù)庫(kù)表drop操作

如果使用preparedstatement的話就可以直接使用預(yù)編譯,PreparedStatement不允許在插入時(shí)改變查詢的邏輯結(jié)構(gòu).

舉例

statement

select * from tab_name where name= "" name "" and passwd="" passwd ""

passwd就可以換成 ‘ or "1"="1

Statement stmt = con.createStatement()

ResultSet rs = stmt.executeQuery(sql)

preparedstatement

select * from tab_name where name=? and passwd=?

PreparedStatement pst = con.prepareStatement(sql)

pstmt.setString(1, name)

pstmt.setString(2, passwd)

ResultSet rs = pstmt.executeQuery()