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

關(guān)于PreparedStatement的setObject作用及說明

 更新時間:2023年03月29日 14:25:32   作者:花傷情猶在  
這篇文章主要介紹了關(guān)于PreparedStatement的setObject作用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

PreparedStatement的setObject作用

在了解setObject作用前講解一下PreparedStatement這個接口,然后循序漸進(jìn)從setXxx()方法講解到setObject。

PreparedStatement

java.sql包中的PreparedStatement接口繼承了Statement接口,PreparedStatement對象可以防止sql注入,而Statement不能防止sql注入,所以實際開發(fā)的時候千萬不要使用Statement。

SQL注入:

比如我的SQL語句為:

select * from user where username =' zhangsan' username ' and password ='password ' ;

其中傳入的參數(shù)為:username(用戶名) 和 password(密碼)。

惡意注入之前的含意是查詢user表的所有字段,匹配條件是username和password跟數(shù)據(jù)表的某條數(shù)據(jù)完全匹配使得條件成立,換言之就是用戶名和密碼必須都為正確的才可以查詢到數(shù)據(jù)。

惡意注入方式一:輸入 username: 隨意 password: ’ or ‘1’='1

select * from user where username ='xxxxx' and password ='xxx' or '1'='1'; 

and 優(yōu)先級 執(zhí)行 高于 or

惡意注入方式二、在SQL添加 – 是mysql的注釋 用戶名框:輸入 zhangsan’ 空格–空格 password 隨意輸入即可

select * from user where username ='zhangsan' -- ' and password ='' ;

注意:以上的 zhangsan’ 空格–空格 中的zhangsan是數(shù)據(jù)庫存在的

setObject

setObject就是給JDBC的SQL語句的占位符賦值的,即是下面的“?”

預(yù)編譯的SQL:參數(shù)使用?作為占位符

注意:sql的參數(shù)使用?作為占位符。 如:

select * from user where username = ? and password = ?;

獲取執(zhí)行sql語句的對象 PreparedStatement Connection.prepareStatement(String sql)

給?賦值:(Xxx代表參數(shù)類型)

  • 方法: setXxx(參數(shù)1,參數(shù)2)
  • 參數(shù)1:?的位置編號 從1 開始
  • 參數(shù)2:?的值

例如:

setString(1,"one")就是定義參數(shù)類型為String類型,然后給第一個?位置上賦值為one。

select * from user where username = 'one' and password = ?;

setInt(2,2)就是定義參數(shù)類型為Int類型,然后給第二個?的位置上賦值為2。

select * from user where username = 'one' and password = 2;

注意:setString定義為String類型就只能傳String類型,也就是說定義什么類型就要傳入什么類型。

重點來了

PreparedStatement的setObject的作用和setString的作用是一樣的!

setObject的第一個參數(shù)是?的位置編號,第二個參數(shù)是Object類型,因為所有的類型默認(rèn)繼承object,這個時候參數(shù)就沒有類型限制,你可以傳入String類型或者Int類型…不需要手動設(shè)置傳參類型。

例如:

setObject(1,"one")就是給第一個?位置上賦值為String類型的"one"。

select * from user where username = 'one' and password = ?;

setObject(2,2)就是給第二個?的位置上賦值為Int類型的2。

select * from user where username = 'one' and password = 2;

JDBC關(guān)于PreparedStatement.setObject的一些細(xì)節(jié)

JDBC中PreparedStatement.setObject(index,Object)方法,

1、index從1開始

2、在插入時間格式的字段時,此處的Object格式必須是java.sql.Date的對象

3、Oracle表中date格式可以表示年月日時分秒

4、從表中取出對象封裝到JavaBean對象中,字段類型可以直接為java.util.Date 

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于maven項目引入maven庫沒有的jar處理辦法

    關(guān)于maven項目引入maven庫沒有的jar處理辦法

    這篇文章主要介紹了關(guān)于maven項目引入maven庫沒有的jar處理辦法,在平時開發(fā)中,有些jar包是不存在maven中央庫中的,那么此時該如何解決才能方便后續(xù)處理呢,需要的朋友可以參考下本文
    2023-03-03
  • Spring運行時動態(tài)注冊bean的方法

    Spring運行時動態(tài)注冊bean的方法

    這篇文章主要介紹了Spring運行時動態(tài)注冊bean的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • mybatis打印的sql日志不寫入到log文件的問題及解決

    mybatis打印的sql日志不寫入到log文件的問題及解決

    這篇文章主要介紹了mybatis打印的sql日志不寫入到log文件的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MyBatis 與 Spring 的完美整合方法

    MyBatis 與 Spring 的完美整合方法

    MyBatis 和 Spring 兩大框架已經(jīng)成了 Java 互聯(lián)網(wǎng)技術(shù)主流框架組合,它們經(jīng)受住了大數(shù)據(jù)量和大批量請求的考驗,在互聯(lián)網(wǎng)系統(tǒng)中得到了廣泛的應(yīng)用。這篇文章主要介紹了MyBatis 與 Spring 整合,需要的朋友可以參考下
    2018-04-04
  • Java對象以Hash結(jié)構(gòu)存入Redis詳解

    Java對象以Hash結(jié)構(gòu)存入Redis詳解

    這篇文章主要介紹了Java對象以Hash結(jié)構(gòu)存入Redis詳解,和Java中的對象非常相似,卻不能按照J(rèn)ava對象的結(jié)構(gòu)直接存儲進(jìn)Redis的hash中,因為Java對象中的field是可以嵌套的,而Redis的Hash結(jié)構(gòu)不支持嵌套結(jié)構(gòu),需要的朋友可以參考下
    2023-08-08
  • java對接webservice接口的4種方式總結(jié)

    java對接webservice接口的4種方式總結(jié)

    因工作需要和一個Sap相關(guān)系統(tǒng)以WebService的方式進(jìn)行接口聯(lián)調(diào),之前僅聽過這種技術(shù),但并沒有實操過,所以將本次開發(fā)進(jìn)行記錄,這篇文章主要給大家介紹了關(guān)于java對接webservice接口的4種方式,需要的朋友可以參考下
    2023-10-10
  • Java遍歷文件夾及子目錄代碼實例

    Java遍歷文件夾及子目錄代碼實例

    這篇文章主要介紹了Java遍歷文件夾及子目錄代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Java實現(xiàn)簡單修改文件名的方法分析

    Java實現(xiàn)簡單修改文件名的方法分析

    這篇文章主要介紹了Java實現(xiàn)簡單修改文件名的方法,結(jié)合具體實例分析了2種比較常用的java文件名修改方法,需要的朋友可以參考下
    2017-09-09
  • Spring @Order注解使用詳解

    Spring @Order注解使用詳解

    注解@Order或者接口Ordered的作用是定義Spring IOC容器中Bean的執(zhí)行順序的優(yōu)先級,而不是定義Bean的加載順序,Bean的加載順序不受@Order或Ordered接口的影響
    2022-08-08
  • collection集合體系與并發(fā)修改異常的解決方法

    collection集合體系與并發(fā)修改異常的解決方法

    今天小編就為大家分享一篇關(guān)于collection集合體系與并發(fā)修改異常的解決方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論

南投市| 平江县| 永兴县| 郁南县| 儋州市| 平山县| 盘山县| 双峰县| 尼勒克县| 平度市| 谢通门县| 彰武县| 夹江县| 视频| 台南县| 通州区| 新绛县| 健康| 霍城县| 漳浦县| 桦川县| 托克托县| 洪泽县| 本溪| 西安市| 三门县| 迭部县| 阜平县| 凤山县| 常德市| 正安县| 洞头县| 长阳| 额尔古纳市| 昌乐县| 青海省| 南宫市| 尼玛县| 霞浦县| 邵武市| 尉犁县|