2014-12-04 62 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注入到你的查询。

相关问题