请问题在JAVA里面声明的变量,如果能够在SQL语句中引用?比如下面这段代码:
private void addData()
{
ResultSet results;
Connection con;
String s1=text[0].getText();
String s2=text[1].getText();
String s3=text[2].getText();
String s4=text[3].getText();
int s5=Integer.parseInt(text[4].getText());
String url="jdbc:odbc:lib";
String q="Insert into item values(s1,s2,s3,s4,s5)";//要将JAVA变量放入SQL语句
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url);
Statement stmt=con.createStatement();
results=stmt.executeQuery(q);
}
catch(Exception e){System.out.println("error");};
}
我在JAVA里面声明了s1~s5变量,在SQL的Insert语句中要使用这些变量,我用String q="Insert into item values(s1,s2,s3,s4,s5)";这样不会识别s1~s5的变量。
请问该怎么做才能使SQL语句识别JAVA里的声明的变量?
private void addData()
{
ResultSet results;
Connection con;
String s1=text[0].getText();
String s2=text[1].getText();
String s3=text[2].getText();
String s4=text[3].getText();
int s5=Integer.parseInt(text[4].getText());
String url="jdbc:odbc:lib";
String q="Insert into item values(s1,s2,s3,s4,s5)";//要将JAVA变量放入SQL语句
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url);
Statement stmt=con.createStatement();
results=stmt.executeQuery(q);
}
catch(Exception e){System.out.println("error");};
}
我在JAVA里面声明了s1~s5变量,在SQL的Insert语句中要使用这些变量,我用String q="Insert into item values(s1,s2,s3,s4,s5)";这样不会识别s1~s5的变量。
请问该怎么做才能使SQL语句识别JAVA里的声明的变量?
PreparedStatement ps = cn.prepareStatement(sql);
ps.setInt(1,xxx);
ps.setString(2,xxx);
...
ResultSet rs = ps.executeQuery(); // 查询
int c = ps.executeUpdate(); // 更新
"Insert into item values(" + s1 + "," + s2 +"," + s3 + "," + s4 + "," + s5)";
不过没有楼上的方法好,耶不是太安全, 不推荐使用..