2014-12-04 64 views
0

我已經在PostgreSQL中創建了一個數據庫,併成功地在它們之間創建了一個連接,並且還從Java源代碼創建了表。如何向用戶輸入中的表中插入值

我的問題是如何將值插入到來自用戶輸入的這些表中。 我已經搜索了足夠的谷歌,但還沒有找到可以真正解釋我需要做什麼的東西。

+0

你能提供更多的信息,比如你正在使用的庫和一些代碼片段嗎? – bob0the0mighty 2014-12-04 16:45:33

+0

爲了能夠建立連接,我使用了標準JDK庫和postgresql-9.3-1102.jdbc3.jar文件。 – 2014-12-04 16:48:14

回答

-1

在處理用戶輸入的方法中,您可以執行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」有三列。

+1

爲了展示新手如何做事***以正確的方式***您真的應該使用'PreparedStatement'和參數化查詢。 (沒有downvote ...這一次...只是一個責罵;) – 2014-12-04 18:32:35

+0

https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html – 2017-08-31 14:01:08

0

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注入到你的查詢。

相關問題