0

在 oracle 中,我们select * from table_name where column_name=&value以类似的方式使用 & 符号 in JDBC

stmt = conn.createStatement();
      String sql;
      sql="select emp_name from employees"+" where emp_no=?";
      ResultSet rs=stmt.executeQuery(sql);
      while(rs.next()){
          String emp_name=rs.getString("emp_name");
        System.out.println(emp_name);  

      }

我写了上面的代码,但它不工作(显示错误)

4

2 回答 2

3

你读过我提供链接的文章吗?

您使用问号?指出查询中要指定参数的位置,并且必须使用 PreparedStatement。我无法测试它,但它应该是这样的:

// some code to obtain the Connection object

PreparedStatement stmt = null;
String yourQuery = " SELECT emp_name FROM employees WHERE emp_no = ? ";

try {
  stmt = conn.prepareStatement(yourQuery);
  stmt.setLong(1, 252);

  ResultSet rs = stmt.executeQuery();

  while(rs.next()) {
    String emp_name = rs.getString("emp_name");
    System.out.println(emp_name);
  } 
} finally {
  // close the stmt etc.
}
于 2013-10-10T11:51:50.280 回答
2

我建议使用PreparedStatement- from memory 它就像

Connection conn = getConnection();
PreparedStatement pstmnt = conn.prepareStatement("Select * from employees where emp_no =?");
pstmnt.setLong(1,emp_no);
ResultSet rs = pstmnt.executeQuery();

但是上面@Przemyslaw Kruglej 高亮的链接几乎肯定会有一个很好的例子(我还没有读过它……)

于 2013-10-10T11:48:24.467 回答