【发布时间】:2020-08-04 20:42:48
【问题描述】:
我正在尝试使用 jdbc 根据委员会列上的条件获取数据。使用语句它会产生所需的结果,但使用 PreparedStatement 它不会。我无法弄清楚出了什么问题。请帮助。这是两个程序之一使用 Statement,另一个使用 PreparedStatement 和我的表结构
import java.sql.*;
class SelectPrepared {
public static void main(String args[]) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "abcd","abcd");
String sql = "select * from tatuserinfo where committee = 'GENERAL'";
Statement stmt = con.createStatement();
// stmt.setString(1,"GENERAL");//1 specifies the first parameter in the query
ResultSet myRs = stmt.executeQuery(sql);
while (myRs.next()) {
System.out.println(myRs.getString(1) + myRs.getString(2) + myRs.getString(3) + myRs.getString(4)
+ myRs.getString(5) + myRs.getString(6) + myRs.getString(7) + myRs.getString(8));
}
con.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
import java.sql.*;
class SelectPreparedOne {
public static void main(String args[]) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String s = "GENERAL";
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "abcd","abcd");
String sql = "select * from tatuserinfo where committee = ?";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, s);// 1 specifies the first parameter in the query
ResultSet myRs = stmt.executeQuery();
while (myRs.next()) {
System.out.println(myRs.getString(1) + myRs.getString(2) + myRs.getString(3) + myRs.getString(4)
+ myRs.getString(5) + myRs.getString(6) + myRs.getString(7) + myRs.getString(8));
}
con.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
表结构
用户名 VARCHAR2(40) 密码 VARCHAR2(40) 角色 VARCHAR2(40) 名称 VARCHAR2(40) 名称 VARCHAR2(40) 部门 VARCHAR2(40) 电子邮件 VARCHAR2(40) 委员会 CHAR(15)【问题讨论】:
-
最终结果是什么?
-
在 PreparedStatement 的情况下,我什么也没有得到命令提示符 reappers