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

Java中的PreparedStatement對(duì)象使用解析

 更新時(shí)間:2023年12月13日 10:10:04   作者:得過(guò)且過(guò)的勇者y  
這篇文章主要介紹了Java中的PreparedStatement對(duì)象使用解析,PreparedStatement對(duì)象采用了預(yù)編譯的方法,會(huì)對(duì)傳入的參數(shù)進(jìn)行強(qiáng)制類(lèi)型檢查和安全檢查,進(jìn)而避免了SQL注入的產(chǎn)生,使得操作更加安全,需要的朋友可以參考下

Java的PreparedStatement對(duì)象

與Statement對(duì)象的區(qū)別

引入PreparedStatement對(duì)象是因?yàn)槭褂肧tatement對(duì)象容易被SQL注入,而PreparedStatement對(duì)象采用了預(yù)編譯的方法,會(huì)對(duì)傳入的參數(shù)進(jìn)行強(qiáng)制類(lèi)型檢查和安全檢查,進(jìn)而避免了SQL注入的產(chǎn)生,使得操作更加安全(具體見(jiàn)博客內(nèi)的文章SQL注入簡(jiǎn)介)

操作方法

編寫(xiě)SQL語(yǔ)句

? String sql = "select * from users where id = ?";
? String sql = "insert into users(id,name,password,email,birthday) values(?,?,?,?,?)"
? String sql = "updateaccountset money = money - ? whereid= ?";

預(yù)編譯

? st = conn.prepareStatement();

傳遞參數(shù)

? st.setInt(1,2);

執(zhí)行

? rs = st.executeQuery();

使用方法的區(qū)別

  • SQL語(yǔ)句中使用?占位符代替參數(shù)
  • 創(chuàng)建對(duì)象的方法不同
    • conn.createStatement();
    • conn.prepareStatement(sql);
  • PrepareStatement中使用預(yù)編譯SQL,先寫(xiě)sql,然后不執(zhí)行
  • 傳遞參數(shù)方法中第一個(gè)參數(shù)表示第幾個(gè)占位符,第二個(gè)參數(shù)則為該占位符的要傳遞的值

注意事項(xiàng)

占位符不能代替字段名

示例

package com.test;
import com.test.second.JdbcUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
public class PrepareTest {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement st = null;
        ResultSet rs = null;
        try {
            conn = JdbcUtils.getConnection();
            String sql = "insert into users(id,`name`,`password`,`email`,`birthday`) values(?,?,?,?,?)";
            st = conn.prepareStatement(sql);
            st.setInt(1,1);
            st.setString(2,"cyh");
            st.setString(3,"123456");
            st.setString(4,"1294967895@qq.com");
            // 注意點(diǎn):sql.Date是數(shù)據(jù)庫(kù)中使用的時(shí)間,java,sql.Date()
            //       util.Date是java中使用的時(shí)間,new Date().getTime()獲得當(dāng)前時(shí)間戳
            st.setDate(5,new java.sql.Date(new Date().getTime()));
            // i返回操作數(shù)據(jù)數(shù)
            int i = st.executeUpdate();
            if(i>0){
                System.out.println("插入成功");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JdbcUtils.release(conn,st,rs);
        }
    }
}

到此這篇關(guān)于Java中的PreparedStatement對(duì)象使用解析的文章就介紹到這了,更多相關(guān)Java的PreparedStatement對(duì)象內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Process#waitFor()阻塞問(wèn)題的解決

    基于Process#waitFor()阻塞問(wèn)題的解決

    這篇文章主要介紹了Process#waitFor()阻塞問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java 使用策略模式操作JDBC數(shù)據(jù)庫(kù)

    java 使用策略模式操作JDBC數(shù)據(jù)庫(kù)

    這篇文章主要介紹了java 使用策略模式操作JDBC數(shù)據(jù)庫(kù)的相關(guān)資料,這里提供實(shí)例實(shí)現(xiàn)對(duì)JDBC數(shù)據(jù)庫(kù)的操作增刪改查的功能,需要的朋友可以參考下
    2017-08-08
  • IDEA如何搭建Struts2項(xiàng)目

    IDEA如何搭建Struts2項(xiàng)目

    這篇文章主要介紹了IDEA如何搭建Struts2項(xiàng)目,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-02-02
  • Spring Boot中的YML配置列表及應(yīng)用小結(jié)

    Spring Boot中的YML配置列表及應(yīng)用小結(jié)

    在Spring Boot中使用YAML進(jìn)行列表的配置不僅簡(jiǎn)潔明了,還能提高代碼的可讀性和可維護(hù)性,這篇文章主要介紹了Spring Boot中的YML配置列表的詳細(xì)解析,需要的朋友可以參考下
    2025-05-05
  • java_String和StringBuffer區(qū)別分析

    java_String和StringBuffer區(qū)別分析

    JAVA平臺(tái)提供了兩個(gè)類(lèi):String和StringBuffer,它們可以?xún)?chǔ)存和操作字符串,即包含多個(gè)字符的字符數(shù)據(jù)。這個(gè)String類(lèi)提供了數(shù)值不可改變的字符串。
    2013-04-04
  • SpringBoot中處理日期的兩種方式小結(jié)

    SpringBoot中處理日期的兩種方式小結(jié)

    本文主要介紹了SpringBoot中處理日期的兩種方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 學(xué)生視角看Java 面向?qū)ο蟮睦^承本質(zhì)

    學(xué)生視角看Java 面向?qū)ο蟮睦^承本質(zhì)

    繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類(lèi)。繼承就是子類(lèi)繼承父類(lèi)的特征和行為,使得子類(lèi)對(duì)象(實(shí)例)具有父類(lèi)的實(shí)例域和方法,或子類(lèi)從父類(lèi)繼承方法,使得子類(lèi)具有父類(lèi)相同的行為
    2022-03-03
  • Mybatis查詢(xún)返回Map<String,Object>類(lèi)型的實(shí)現(xiàn)

    Mybatis查詢(xún)返回Map<String,Object>類(lèi)型的實(shí)現(xiàn)

    本文主要介紹了Mybatis查詢(xún)返回Map<String,Object>類(lèi)型的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • spring data jpa 查詢(xún)自定義字段,轉(zhuǎn)換為自定義實(shí)體方式

    spring data jpa 查詢(xún)自定義字段,轉(zhuǎn)換為自定義實(shí)體方式

    這篇文章主要介紹了spring data jpa 查詢(xún)自定義字段,轉(zhuǎn)換為自定義實(shí)體方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • SpringCloud創(chuàng)建多模塊項(xiàng)目的實(shí)現(xiàn)示例

    SpringCloud創(chuàng)建多模塊項(xiàng)目的實(shí)現(xiàn)示例

    ,Spring Cloud作為一個(gè)強(qiáng)大的微服務(wù)框架,提供了豐富的功能和組件,本文主要介紹了SpringCloud創(chuàng)建多模塊項(xiàng)目的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02

最新評(píng)論

镇坪县| 剑阁县| 榆树市| 宁阳县| 泰和县| 农安县| 小金县| 东兰县| 平定县| 衢州市| 邢台县| 阜平县| 丽水市| 忻城县| 宣恩县| 杨浦区| 文昌市| 银川市| 兴义市| 嘉鱼县| 宾阳县| 汉源县| 崇阳县| 门头沟区| 泰宁县| 襄汾县| 宽城| 金昌市| 花莲县| 隆安县| 阿荣旗| 蓬莱市| 永和县| 上蔡县| 望奎县| 柳江县| 安徽省| 全南县| 沐川县| 红桥区| 桐城市|