【发布时间】:2012-04-27 21:01:43
【问题描述】:
如果我有一个带有接口的代码,该接口从用户那里获取数据,然后将此数据存储在字符串类型的变量中,我如何将这个变量插入数据库中?这是我所说的一个例子:
String s1="user@hotmail.com";
Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection con=
DriverManager.getConnection("jdbc:derby://localhost:1527/SampleDB","app","app");
Statement st=con.createStatement();
st.executeUpdate("INSERT INTO EMAIL"+"(ID)"+"VALUES(s1)");
但是这种方式行不通,不会在数据库中插入这个字符串类型的变量!
我该怎么做?
【问题讨论】:
-
您的第一个问题是您没有连接变量,名称是实际字符串的一部分。你的第二个问题是你将用户提供的输入直接连接到你的 SQL 中,而不是使用准备好的语句——这会让你对 SQL 注入开放,所以不要这样做。