我已经在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