我创建一个SQL语句,通过将预订的id与路由表中Id的列表进行比较,从表中查找免费的RouteId。
我想要做的就是在提供的代码的底部,创建一个if语句,说明所有路由是否都是空闲的,然后将所有这些RouteId放入列表中。
我可以从那里完成剩下的工作,但是如何从select语句中获取免费路由到列表中以便我可以将其随机化?
这甚至可能吗?
//<editor-fold defaultstate="collapsed" desc="To select all free routes">
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
//load the oracle driver...needs to be in classes folder in jre folder
} catch (ClassNotFoundException e) {
System.out.println(
" Can't find class oracle.jdbc.driver.OracleDriver");
System.exit(1);
}
Connection conn3 = null;
//new connection object
Statement stmtFreeR = null;
//new statemnt object
ResultSet freeRoute = null;
//new record set object
try {
conn3 = DriverManager.getConnection("jdbc:oracle:thin:@oracle.staff.ittralee.ie:1521:orcl",
"*", "7*");
stmtFreeR = conn3.createStatement();
// create the statement for this connection
//</editor-fold>
freeRoute = stmtFreeR.executeQuery(
"SELECT r.RouteID FROM Route r WHERE RouteID NOT IN(SELECT b.RouteId FROM Booking b)");
// get the results of select query and store in recordset object
while (freeRoute.next()) {
// move to first/next record of recordset
JOptionPane.showMessageDialog(null, " the answer is " + freeRoute.getString(1));
// output next record using string format
}
//<editor-fold defaultstate="collapsed" desc="Error handling for Select Statement">
freeRoute.close();
freeRoute = null;
stmtFreeR.close();
stmtFreeR = null;
conn3.close();
conn3 = null;
} catch (SQLException e) {
System.out.println(" A SQL error: " + e.getMessage());
} finally {
if (freeRoute != null) {
try {
freeRoute.close();
} catch (SQLException ignore) {
}
}
if (stmtFreeR != null) {
try {
stmtFreeR.close();
} catch (SQLException ignore) {
}
}
if (conn3 != null) {
try {
conn3.close();
} catch (SQLException ignore) {
}
}
}
// </editor-fold>
if( /*freeRoute*/ != null) {
//insert all routes into a list
//Randomize the list
//Return random route called RX
}