我已經在PostgreSQL中創建了一個數據庫,併成功地在它們之間創建了一個連接,並且還從Java源代碼創建了表。如何向用戶輸入中的表中插入值
我的問題是如何將值插入到來自用戶輸入的這些表中。 我已經搜索了足夠的谷歌,但還沒有找到可以真正解釋我需要做什麼的東西。
我已經在PostgreSQL中創建了一個數據庫,併成功地在它們之間創建了一個連接,並且還從Java源代碼創建了表。如何向用戶輸入中的表中插入值
我的問題是如何將值插入到來自用戶輸入的這些表中。 我已經搜索了足夠的谷歌,但還沒有找到可以真正解釋我需要做什麼的東西。
在處理用戶輸入的方法中,您可以執行INSERT或UPDATE查詢。下面是來自docs變形例:
Statement st = conn.createStatement();
String query_st = "INSERT INTO user_info_table VALUES ('"+user_id+"', '"+age+"', "+height+");";
ResultSet rs = st.executeQuery(query_st);
while (rs.next())
{
System.out.print("Column 1 returned ");
System.out.println(rs.getString(1));
} rs.close();
st.close();
這裏假設你有一個表「user_into_table」有三列。
爲了展示新手如何做事***以正確的方式***您真的應該使用'PreparedStatement'和參數化查詢。 (沒有downvote ...這一次...只是一個責罵;) – 2014-12-04 18:32:35
https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html – 2017-08-31 14:01:08
https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
try (PreparedStatement pstmt = con.prepareStatement("INSERT INTO employees VALUES (?,?)")) {
pstmt.setBigDecimal(1, inputFromUser) <---- injection safe
pstmt.setInt(2, inputFromUser) <---- injection safe
...
} // Auto close.
最重要的是使用準備好的語句,而不是字符串連接的問號,CONCAT允許用戶在SQL注入到你的查詢。
你能提供更多的信息,比如你正在使用的庫和一些代碼片段嗎? – bob0the0mighty 2014-12-04 16:45:33
爲了能夠建立連接,我使用了標準JDK庫和postgresql-9.3-1102.jdbc3.jar文件。 – 2014-12-04 16:48:14