1. 在java中一條sql語句中有多個函數和where條件如何替換其中的欄位為空格
用佔位符,${id},${name},然後用值去替換這些佔位符
2. 用Select*from where like。Java
假如你要接受用戶的輸入,讓他可以查詢一些數據,支持模糊查找的,所以他輸入一些字元,你要把包含這些字元的返回,所以用戶的輸入當作一個函數的參數被傳入,你用String userInput接收,例如用戶輸入"劉"
public List<User> searchUsers(String userInput) {
... 獲得Connection conn
PreparedStatement pstmt = conn.prepareStatement("SECLET*FROM 圖書表 WHERE 作者 LIKE ?");
pstmt .setString(1,"%" + userInput + "%");
獲得結果集,返回。
}
注意通過pstmt .setString和直接把這個userInput寫到SQL語句里的效果不一樣,寫到SQL語句里用戶的輸入就當成SQL語句的一部分了,用戶的輸入還能包含sql語句,雖然用戶不這寫,而且用戶如果輸入一些特殊的字元會把你的sql語句破壞掉,而pstmt .setString是不一樣的,他是預編譯的,會把 ? 留一個位置(佔位)然後完全按照你輸入的string進行匹配。你自己理解一下吧
樓上兩位的很有可能造成SQL注入式攻擊, 如果用戶查找時這么輸入
String strInput = "劉%' or 1=1 --"; 則執行後所有結果都將被查出來。
PreparedStatement 實例包含已編譯的 SQL 語句。這就是使語句「准備好」。包含於 PreparedStatement 對象中的 SQL 語句可具有一個或多個 IN 參數。IN參數的值在 SQL 語句創建時未被指定。相反的,該語句為每個 IN 參數保留一個問號(「?」)作為佔位符。每個問號的值必須在該語句執行之前,通過適當的setXXX 方法來提供。 由於 PreparedStatement 對象已預編譯過,所以其執行速度要快於 Statement 對象。因此,多次執行的 SQL 語句經常創建為 PreparedStatement 對象,以提高效率。 作為 Statement 的子類,PreparedStatement 繼承了 Statement 的所有功能。另外它還添加了一整套方法,用於設置發送給資料庫以取代 IN 參數佔位符的值。同時,三種方法 execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要參數。這些方法的 Statement 形式(接受 SQL 語句參數的形式)不應該用於 PreparedStatement 對象。
3. Java往MySQL輸入數據時where後有兩個值怎麼弄
兄台,因為你資料庫的各個欄位類型不一樣,你如果直接拼串的話,資料庫是varchar或varchar2,支持你拼,並且格式如下,注意單引號啊!!!!!
sql="SELECT * "+ " FROM workingandclosingtime "+" WHERE gh='"+a+"' and date=to_date("+b+",'yyyy-mm-dd')";
記住了,sql語句一定要通過轉換,保證和資料庫的類型一致,這樣做很麻煩的,如下就非常簡單了:
sql="SELECT * "+ " FROM workingandclosingtime "+" WHERE gh=? and date=?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setBigDecimal(1, 153833.00)
pstmt.setInt(2, 110592)
pstmt.execute();
這樣,查詢結果就出來了。
但願答對了!!!!
4. javaweb 求wheresql語句怎麼寫
先學習JAVA的基礎。
然後學習資料庫。如:MySQL的
然後學習HTML,CSS,JavaScript和等等。
然後學習JSP
然後學習Servlet的
的JavaBean
5. 關於sql語句添加where條件問題,用java語句
對字元串的合法性判斷應該放到頁面上去,可以採用正則表達式,寫到script腳本里去。這樣首先就做到了從頁面傳來的信息都是合法的。
聲明一個字元串變數sql,初始化為where前的sql語句。
聲明一個整形變數count,初始化為0;
將從頁面得到的信息進行判斷,如果為空值則不加到sql後,如果不為空值,則先count++ ,再判斷count是否為1,如果是1,那將條件直接加到sql語句之後,如果大於1,那麼就在條件之前加"and"。
6. 資料庫 Java SQL select from where 兩個條件並列情況
SELECT `id`, `searchTimes` FROM `relationship` WHERE ('word_one' = 'man' AND 'word_two' = 'banana') OR ('word_one' = 'banana' AND 'word_two' = 'man')
7. java怎麼像sql的where條件那樣處理list裡面的數據
public static void main(String[] args){
vo vo1 = new vo("張三",12,"武漢");
vo vo2 = new vo("李四",12,"武漢");
vo vo3 = new vo("王五",12,"北京");
List<vo> list = Arrays.asList(vo1,vo2,vo3);
//條件
vo vo4 = new vo("",null,"武漢");
if(vo4.getName() != null && !"".equals(vo4.getName())){
list = list.stream().filter(vo -> vo.getName().equals(vo4.getName()))
.collect(Collectors.toList());
}
if(vo4.getAge() != null){
list = list.stream().filter(vo -> vo.getAge().equals(vo4.getAge()))
.collect(Collectors.toList());
}
if(vo4.getCity() != null && !"".equals(vo4.getCity())){
list = list.stream().filter(vo -> vo.getCity().equals(vo4.getCity()))
.collect(Collectors.toList());
}
list.stream().forEach(vo -> {
System.out.println(vo);
});
}
8. 在sql的where條件下怎麼加判斷語句
是oracle,A是外界傳入,需要判斷A是否為空 來決定where後面的提啊件。 我只是把語句簡化成這樣會容易理解一點回答: 你這個是存儲過程不,前面有定義變數用來接受外界傳入的值嗎?判斷是不是空的用A is null來判斷追問: 不是存儲過程,是一個function方法 ,我的sql語句很長,只需要where後面的這一個條件需要變動 ,用if else的方法是可以實現我的需求,不過就會造成很多冗餘代碼。兩段長長的代碼不一樣的地方就是 一個是num =A 一個是num is null 。 所以需要一個方便點的辦法回答: function和存儲過程類似的 if length(A)<0 then 剛才上面那個我的回答錯了,不是function, 是一個存儲過程(procere) , 這個如果用java或者c#代碼來解決就非常簡單了,不過在直接的sql語句上去操作就有點~回答: 先建3個變數,前兩個保存不同的where語句,第三個空著 var a := 'num =A' var b :='num is nul'var c然後根據參數選擇用哪個語句變數 用變數把語句存起來 if A = null thenc=b;elsif A<null thenc=a;end if;最後和前面的select語句用連接符和變數c連接起來用 " || " 最後sql樣式如下: select......from .......||c既可補充: 掉了個關鍵字where
9. 在用 SQL 查詢頁號的時候採用模糊查詢 並嵌套在JAVA中 加where 跟不加where
如果是用MYSQL試試用LIMIT先把分頁在查詢過程中做好,
然後再通過你傳進去的參數來計算你的頁數
在limit後面加兩個參數,起始,結束.
如果是ORACLE就嵌套分頁吧.
這種代碼網上一搜一大堆的..