请问题在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里的声明的变量?

解决方案 »

  1.   

    用PreparedStatement来执行sql语句 其中的"xxx"你可以根据你的需要用s1,s2...去替换掉.String sql;sql = "insert into user (id,name) values (?,?)";
    PreparedStatement ps = cn.prepareStatement(sql);
    ps.setInt(1,xxx);
    ps.setString(2,xxx);
    ...
    ResultSet rs = ps.executeQuery(); // 查询
    int c = ps.executeUpdate(); // 更新
      

  2.   

    楼上的可以。这样子耶可以的
    "Insert into item values(" + s1 + "," + s2 +"," + s3 + "," + s4 + "," + s5)";
    不过没有楼上的方法好,耶不是太安全, 不推荐使用..