導航:首頁 > 編程語言 > java轉義sql

java轉義sql

發布時間:2022-11-16 10:03:56

java中如何解決sql 注入漏洞

1、對傳遞過來的參數值段做過濾處理 包含sql操作關鍵字的幹掉!當然這個要符合你的業務需求
2、不要對sql語句做拼接處理 可以用類似 jdbc中的preparestatement動態sql技術 生成sql

3、對傳遞進來的參數值做字元串轉義 'sql do some' 讓資料庫把這段當成一段字元串處理 而不進行操作編譯

② JAVA方法,SQL語句模糊查詢

這問題很眼熟
也可以這樣:
String sql="select * from ARITCLE where type="+type+" and title like "++" and writer like "+writer+"";
改成
String sql="select * from ARITCLE where type="+type+" and title like '%"++"%' and writer like '%"+writer+"'%";
如果writer 這些參數是用戶輸入而且不經過處理的話
拼接字元串生成查詢語句,會使SQL注入攻擊變得相當容易

③ Java如何對sql語句進行轉義

不需要轉義,因為sql是預編譯的

④ java拼sql遇到了關於" ' "符號轉義的問題。

首先將你的值字元串替換下 也就是轉一下
例如你的值是str
str = str.replace("'", "''");

⑤ Java調用SQL存儲過程、事務

例示一個不帶參數的簡單存儲過程。多數存儲過程的功能比本例復雜多了,但這里主要說明存儲過程的一些基本要點。如前面所述,不同DBMS定義存儲過程的語法是不同的。例如,有些DBMS使用begin
.
.
.
end或其他關鍵字指明存儲過程定義的開始和結束。在有些DBMS中,下面的SQL語句可創建一個存儲過程:
create
procere
SHOW_SUPPLIERS
as
select
SUPPLIERS.SUP_NAME,
COFFEES.COF_NAME
from
SUPPLIERS,
COFFEES
where
SUPPLIERS.SUP_ID
=
COFFEES.SUP_ID
order
by
SUP_NAME
下面的代碼將SQL語句放到一個字元串中,然後賦給變數createProcere以備後用:
String
createProcere
=
"create
procere
SHOW_SUPPLIERS
"
+
"as
"
+
"select
SUPPLIERS.SUP_NAME,
COFFEES.COF_NAME
"
+
"from
SUPPLIERS,
COFFEES
"
+
"where
SUPPLIERS.SUP_ID
=
COFFEES.SUP_ID
"
+
"order
by
SUP_NAME";
下面的代碼段使用Connection對象con來創建Statement對象,用於把創建存儲過程的SQL語句發送給資料庫:
Statement
stmt
=
con.createStatement();
stmt.executeUpdate(createProcere);
存儲過程SHOW_SUPPLIERS將作為一個可調用的資料庫對象在資料庫中編譯並存儲,調用時就像調用其他方法一樣。

⑥ 在java中如何將String類型轉換成java.sql.Date類型

在java.sql.Date類中有一個叫valueOf(String s)的方法,它返回的方法就是你要的類型,不過它對傳入的String s有一定的顯示,必須是「yyyy-mm-dd」格式的數據。如果不是制定格式的數據,他會拋出「IllegalArgumentException」的異常。
java api中是如下解釋(我用的api是1.6版的)

valueOf
public static Date valueOf(String s)將 JDBC 日期轉義形式的字元串轉換成 Date 值。

參數:
s - 表示 "yyyy-mm-dd" 形式的日期的 String 對象
返回:
表示給定日期的 java.sql.Date 對象
拋出:
IllegalArgumentException - 如果給定日期不是 JDBC 日期轉義形式 (yyyy-mm-dd)

⑦ 請問java中用string拼SQL如何轉義單引號

用replaceAll替換v1,v2即可。具體寫法如下
v1=v1.replaceAll("'","''");
v2=v2.replaceAll("'","''");
就是把一個單引號替換成兩個單引號。

⑧ 我的JAVAWEB工程SQL語句在MYSQL中可以正確執行,但是在TOMCAT里卻報錯,求助解答~~~

  1. maven項目就clean、install,然後重啟項目

  2. 重啟項目

  3. 如果還不行就清除網頁緩存

以上是你曾經在idea中輸入過錯誤SQL語句(後來在MYSQL中調試成功了)時首先可以選擇的做法

下面是沒有修改過的可選做法

  1. 查看配置文件,資料庫是否連通

  2. 查看資料庫版本

  3. 仔細檢查語法,尤其是逗號。

⑨ 急求~~~在java中怎麼實現sql中的存儲過程啊~

java.sql
介面 CallableStatement
public interface CallableStatementextends PreparedStatement用於執行 SQL 存儲過程的介面。JDBC API 提供了一個存儲過程 SQL 轉義語法,該語法允許對所有 RDBMS 使用標准方式調用存儲過程。此轉義語法有一個包含結果參數的形式和一個不包含結果參數的形式。如果使用結果參數,則必須將其注冊為 OUT 型參數。其他參數可用於輸入、輸出或同時用於二者。參數是根據編號按順序引用的,第一個參數的編號是 1。

{?= call <procere-name>[<arg1>,<arg2>, ...]}
{call <procere-name>[<arg1>,<arg2>, ...]}
IN 參數值是使用從 PreparedStatement 中繼承的 set 方法設置的。在執行存儲過程之前,必須注冊所有 OUT 參數的類型;它們的值是在執行後通過此類提供的 get 方法檢索的。

CallableStatement 可以返回一個 ResultSet 對象或多個 ResultSet 對象。多個 ResultSet 對象是使用從 Statement 中繼承的操作處理的。

為了獲得最大的可移植性,某一調用的 ResultSet 對象和更新計數應該在獲得輸出參數的值之前處理。

去看看java API吧

⑩ java如何拼接sql語句

你咋不試試,
String columnStr;
String valueStr;
for(int i=0; i<columns.length; i++){
columnStr = "(" + columns[i] + ",";
valueStr = "'( \"" + value[i] + ",";
}

參考JAVA轉義字元。網路一下吧。你自己試試,我這里沒裝jdk,懶得弄了,准備休息了。

閱讀全文

與java轉義sql相關的資料

熱點內容
伺服器軟路由怎麼做 瀏覽:289
冰箱壓縮機出口 瀏覽:225
OPT最佳頁面置換演算法 瀏覽:642
網盤忘記解壓碼怎麼辦 瀏覽:852
文件加密看不到裡面的內容 瀏覽:651
程序員腦子里都想什麼 瀏覽:430
oppp手機信任app在哪裡設置 瀏覽:185
java地址重定向 瀏覽:268
一年級下冊摘蘋果的演算法是怎樣的 瀏覽:448
程序員出軌電視劇 瀏覽:88
伺服器系統地址怎麼查 瀏覽:54
解壓游戲發行官 瀏覽:601
國外小伙解壓實驗 瀏覽:336
頂級大學開設加密貨幣 瀏覽:437
java重載與多態 瀏覽:528
騰訊應屆程序員 瀏覽:942
一鍵編譯程序 瀏覽:129
語音加密包哪個好 瀏覽:341
有什麼學習高中語文的app 瀏覽:283
安卓手機的表格里怎麼打勾 瀏覽:411