Java 如何在同一方法中执行两个不同的ResultSet对象
我使用Oracle数据库运行JDBC,但是当它在同一个方法上执行查询时,它不会执行第二个方法Java 如何在同一方法中执行两个不同的ResultSet对象,java,jdbc,Java,Jdbc,我使用Oracle数据库运行JDBC,但是当它在同一个方法上执行查询时,它不会执行第二个方法 public class PRACTICE_4 { public static void main(String[] args) throws SQLException,ClassNotFoundException{ Scanner scn = new Scanner(System.in); String url = "jdbc:oracle:thin:@//
public class PRACTICE_4 {
public static void main(String[] args) throws SQLException,ClassNotFoundException{
Scanner scn = new Scanner(System.in);
String url = "jdbc:oracle:thin:@//localhost:1521/xe";
Connection con = DriverManager.getConnection(url,"hr","oracle");
PreparedStatement statement = con.prepareStatement("SELECT e.first_name, e.last_name,d.department_name,l.city \n" +
"FROM employees e\n" +
"JOIN departments d\n" +
"ON (e.department_id = d.department_id)\n" +
"JOIN locations l\n" +
"ON (d.location_id = l.location_id)"
+ "WHERE l.city = ?"
+ "AND e.employee_id = ?");
PreparedStatement cities = con.prepareStatement("SELECT city FROM locations");
try {
第一条语句已成功完成
System.out.println("Please introduce one of the following cities:");
ResultSet rs_cities = cities.executeQuery();
while(rs_cities.next()) {System.out.print(rs_cities.getString("city") + " | ");}
System.out.println();
rs_cities.colse();
statement.setString(1,"'" + scn.next() + "'");
System.out.println("Please introduce a an employee ID");
statement.setInt(2,scn.nextInt());
第二条语句不执行(打印)
它为我工作检查下面的代码 因为您使用的是别名为String的join F_name=rs.getString(“e.first_name”)应该是字符串F_name=rs.getString(“first_name”)强>
private void test() throws SQLException, ClassNotFoundException {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@<host>:<port>:<sid>";
Connection con = DriverManager.getConnection(url, "<username>", "<pass>");
PreparedStatement request = con.prepareStatement("Select * from request where request_number = 101");
PreparedStatement book = con.prepareStatement("Select * from book_store");
ResultSet rs1 = request.executeQuery();
while (rs1.next()) {
System.out.println("Priting request result : " + rs1.getString("REQUEST_NUMBER") + ", " + rs1.getString("REQUEST_NAME"));
}
rs1.close();
ResultSet rs2 = book.executeQuery();
while (rs2.next()) {
System.out.println("cities statement result : " + rs2.getString("SID") + ", " + rs2.getString("SNAME"));
}
rs2.close();
}
private void test()抛出SQLException、ClassNotFoundException{
类forName(“oracle.jdbc.driver.OracleDriver”);
String url=“jdbc:oracle:thin:@:”;
Connection con=DriverManager.getConnection(url,“,”);
PreparedStatement request=con.prepareStatement(“从请求中选择*,其中请求号=101”);
PreparedStatement book=con.prepareStatement(“从书店选择*);
ResultSet rs1=request.executeQuery();
while(rs1.next()){
System.out.println(“请求结果:+rs1.getString(“请求编号”)+,“+rs1.getString(“请求名称”));
}
rs1.close();
ResultSet rs2=book.executeQuery();
while(rs2.next()){
System.out.println(“cities语句结果:+rs2.getString(“SID”)+,“+rs2.getString(“SNAME”);
}
rs2.close();
}
结果:
Priting请求结果:101,请求987654321
Priting请求结果:101,Testcheckforunittest
定价请求结果:101,请求测试移动批准
定价请求结果:101103
Priting请求结果:101,测试秒空白
Priting请求结果:101,shreesh返回测试1支持
城市报表结果:100,商店1
城市报表结果:100,商店1
城市报表结果:100,商店1
城市报表结果:200,商店2
cities语句结果:200,store2我猜您的意思是
close()代码>而不是colse()代码>。目前,您的代码甚至无法编译(例如由于rs.colse()
和rs\u cities.colse()
)。请张贴实际代码。如果您使用的是Eclipse,编译错误还可能导致Eclipse运行以前成功编译的代码。如果您的代码抛出异常,请确保发布完整的异常堆栈跟踪。您是否注意到,cities
是一个简单的语句,可以读取所有内容,而语句
是一个更复杂的语句,涉及大量lof内部联接,可能导致它根本没有结果?语句的问题实际上可能是:语句.setString(1,““+scn.next()+”)代码>-如果调用setString()
,则不需要将参数用单引号括起来。您的代码正在向查询要查找的值添加单引号,我假设没有城市名称会用单引号括起来。Juststatement.setString(1,scn.next())代码>应该足够了。
private void test() throws SQLException, ClassNotFoundException {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@<host>:<port>:<sid>";
Connection con = DriverManager.getConnection(url, "<username>", "<pass>");
PreparedStatement request = con.prepareStatement("Select * from request where request_number = 101");
PreparedStatement book = con.prepareStatement("Select * from book_store");
ResultSet rs1 = request.executeQuery();
while (rs1.next()) {
System.out.println("Priting request result : " + rs1.getString("REQUEST_NUMBER") + ", " + rs1.getString("REQUEST_NAME"));
}
rs1.close();
ResultSet rs2 = book.executeQuery();
while (rs2.next()) {
System.out.println("cities statement result : " + rs2.getString("SID") + ", " + rs2.getString("SNAME"));
}
rs2.close();
}