在oracle中我们以类似的方式使用select * from table_name where column_name=&value
如何在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);
}
我写了上面的代码,但它没有工作(显示错误)
答案 0 :(得分: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.
}
答案 1 :(得分:2)
我建议使用PreparedStatement
- 来自内存,它就像
Connection conn = getConnection();
PreparedStatement pstmnt = conn.prepareStatement("Select * from employees where emp_no =?");
pstmnt.setLong(1,emp_no);
ResultSet rs = pstmnt.executeQuery();
但@Przemyslaw Kruglej上面提到的高亮度的链接几乎肯定会有一个很好的例子(我还没读过它......)