簡體   English   中英

設置准備好的語句參數 where NOT NULL java

[英]set prepared statement parameter where NOT NULL java

要使用准備好的語句在 Java 中執行 sql 查詢,我知道您是這樣做的:

Connection con=UserModel.getConnection();  
String sql = "UPDATE users SET firstname=?,lastname=? WHERE id=?";
PreparedStatement ps=con.prepareStatement(sql); 

ps.setString(1,u.getFirstname());  
ps.setString(2,u.getLastname());  
ps.setString(3,u.getId());

setString 方法中的第一個參數表示要進入 sql 語句的值的順序,其中 ? 標志。

現在我想要做的是從 users 表選擇role 不是 NULL 像這樣的東西:

Connection con = UserModel.getConnection();  
PreparedStatement ps = con.prepareStatement("SELECT * FROM users WHERE role=?");
ps.setString(1,not_null); // ***here***

如何選擇角色不為空的位置? 那是我的問題。

使用帶有 where 子句的 sql:

where role is not null 

使用 = 將某些內容與 null 進行比較將不起作用。 PreparedStatement 上的 setNull - 請參閱JDBC:Inserting null to Integer column - 替換了 null,但這在這里沒有幫助,因為 where 子句條件始終為 false。 有關原因,請參閱為什么 NULL = NULL 在 SQL 服務器中評估為假

連接 con = UserModel.getConnection();
PreparedStatement ps = con.prepareStatement("SELECT * FROM users WHERE role is NOT NULL"); ps.executeQuery();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM