1. 程式人生 > >java連線資料庫操作2--防止sql注入

java連線資料庫操作2--防止sql注入

  • 使用PreparedStatement之後的程式
    //查詢兩個結果
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/ecshop?useUnicode=true&characterEncoding=UTF8",
    "root",
    "123456");
    String sql = "Select * from ecs_article where article_id=? and title=?" ;
    PreparedStatement pstmt = con.prepareStatement(sql);
    pstmt.setInt(1, 1);
    pstmt.setString(2, "免責條款");
    ResultSet rs = pstmt.executeQuery();
    while(rs.next()) {
    	int id = rs.getInt(1);
    	String title = rs.getString(3);
    	System.out.println(id + ", " + title);
    }
    rs.close();
    pstmt.clearParameters();
    pstmt.setInt(1, 2);
    pstmt.setString(2, "隱私保護");
    rs = pstmt.executeQuery();
    while(rs.next()) {
    	int id = rs.getInt(1);
    	String title = rs.getString(3);
    	System.out.println(id + ", " + title);
    }
    //釋放資源,順序和建立的順序相反
    rs.close();
    pstmt.close();
    con.close();
    


相關推薦

java連線資料庫操作2--防止sql注入

sql注入 概念 所謂sql注入,即使用者輸入的字串和我們的sql結合產生預判之外的結果,比如下面這段判斷使用者名稱密碼是否正確的程式碼 String sql = "SELECT * FROM use

Android五種資料儲存方式之SQLite資料庫儲存 載入SD卡資料庫 sql操作 事務 防止SQL注入

資料庫 前言 資料庫儲存 資料庫建立 內建儲存資料庫 外接儲存資料庫 編寫DAO 插入操作 更新操作 刪除操作 查詢操作

php操作mysql防止sql注入(合集)

本文將從sql注入風險說起,並且比較addslashes、mysql_escape_string、mysql_real_escape_string、mysqli和pdo的預處理的區別。 當一個變數從表單傳入到php,需要查詢mysql的話,需要進行處理。 舉例: $unsafe_variable

玩轉JDBC打造資料庫操作萬能工具類JDBCUtil,加入了高效的資料庫連線池,利用了引數繫結有效防止SQL注入

SELECT * FROM emp_test 成功查詢到了14行資料 第1行:{DEPT_TEST_ID=10, EMP_ID=1001, SALARY=10000, HIRE_DATE=2010-01-12, BONUS=2000, MANAGER=1005, JOB=Manager, NAME=張無忌}

資料庫連線中使用PreparedStatement預編譯防止SQL注入

//使用預編譯不需要對SQL語句進行拼接,而是使用?佔位符,因此可以防止SQL注入,提升了安全性。 1.提高程式碼可讀性和可維護性 2.提高sql語句執行效能 3.提高安全性 PreparedS

java連線操作mongodb資料庫(增、刪、查、改)

文末附有原始碼下載地址 package com.mongo.controller; import com.mongodb.*; import java.net.UnknownHostException; import java.util.Date; import java.util.Se

PHP實現防止SQL注入2種方法

PHP簡單實現防止SQL注入的方法,結合例項形式分析了PHP防止SQL注入的常用操作技巧與注意事項,PHP原始碼備有詳盡註釋便於理解,需要的朋友可以參考下!   方法一:execute代入引數 $var_Value) { //獲取POST陣列最大值 $num = $nu

java防止SQL注入的兩種方法

1.採用預編譯語句集,它內建了處理SQL注入的能力,只要使用它的setString方法傳值即可: String sql= "select * from users where username=? and password=?; PreparedStatement

Java連線操作資料庫

JDBC 1、JDBC是開發資料庫引用的java API,通過JDBC,使用Java設計的程式能夠執行SQL語言、獲取結果、在使用者介面中顯示資料,並且能將所做的改動傳回資料庫,同時JDBC API可用於分散式異型機環境中國多種資料來源之間的互動; 2、一般使用Jav

Java連線資料庫 #05# SQL與程式碼分離 Java連線資料庫 #04#

索引 讀取html中的SQL語句 缺陷總結 在Java連線資料庫 #04#裡是大概是這樣放sql語句的: package org.sample.shop.db.queryrunner; import org.sample.shop.db.que

關於Java連線資料庫的一些操作

使用JDBC連線資料庫 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import ja

java連線資料庫和執行靜態和動態的sql語句

►JDBC (Java DatabaseConnectivity) 是用於執行SQL 語句的Java 應用程式介面,由一組用Java 語言編寫的類和介面組成。 ►JDBC 是一種規範,各資料庫廠商為J

java處理SQL特殊字元轉義 防止sql注入

SQL特殊字元轉義 應 該說,您即使沒有處理 HTML 或 JavaScript 的特殊字元,也不會帶來災難性的後果,但是如果不在動態構造 SQL 語句時對變數中特殊字元進行處理,將可能導致程式漏洞、資料盜取、資料破壞等嚴重的安全問題。網路中有大量講解 SQL 注入的文

java 防止SQL注入 字串過濾

防止SQL注入,字串過濾關鍵字元 public class SQLFilterTest { public static void main(String[] args) {

2.MySQL8.0版本jdbc驅動連線資料庫操作

1.JDBC操作資料庫的步驟:    1.註冊驅動        告知JVM使用的是哪一個資料庫的驅動;    2.獲得連結        使用JDBC中的類,完成對MySql資料庫的連結;    3.獲得語句執行平臺        通過連結物件獲取對SQL語句的執行者物件;

JDBC(3)JAVA連線資料庫之 抽象DAO操作

抽象DAO操作 關於所有的表操作都會對應一些操作,我們都會把這些抽取到對應的DAO中。那麼存在大量的重複操作,是否可以抽出通用的部分,供大家繼承使用。 把DAO的操作先寫成介面,把通用的操作提煉出來。 實現操作 根據主鍵查詢 查詢所有 增加、刪除、修改、記

java中預處理PrepareStatement為什麼能起到防止SQL注入的作用??!!

       大家都知道,java中JDBC中,有個預處理功能,這個功能一大優勢就是能提高執行速度尤其是多次操作資料庫的情況,再一個優勢就是預防SQL注入,嚴格的說,應該是預防絕大多數的SQL注入。

java連線資料庫後進行更新插入操作

接上一次的查詢操作,這次將更新與插入的程式碼補充 首先是服務端的接收端,接收到客戶端的請求則傳送相應操作 if ("1".equals(message)) { //從mysql資料庫倉庫中查詢資料 jc.mysqlSelect("selec

JAVA經典面試題(一)-- 判斷以及防止SQL注入

SQL注入是目前黑客最常用的攻擊手段,它的原理是利用資料庫對特殊識別符號的解析強行從頁面向後臺傳入。改變SQL語句結構,達到擴充套件許可權、建立高等級使用者、強行修改使用者資料等等操作。 那怎麼判斷是否被SQL注入了呢? 通過SQL注入的原理我們知道,判斷S

nodejs中查詢mysql防止SQL注入

Performing queries The most basic way to perform a query is to call the .query() method on an object (like a Connection, Pool, or PoolNamespace inst