sql如何从select查询的结果集创建Java对象?
与JDBC的连接工作正常。这是访问数据库表的代码。文件名–
FlightDB。JAVA 模式–Flights1(flno int,时间戳)
public static Flight selectFlight(Flight flight) throws SQLException{
PreparedStatement ps = null;
ResultSet rs = null;
String q1 = "Select * from Flights1 f order by f.time";
Flight flight1 = null;
try{
ps = connection.prepareStatement(q1);
rs = ps.executeQuery();
while(rs.next()){
Flight flight1 = new Flight();
flight1 = new Flight();
flight1.setflno(rs.getInt(1));
flight1.settime(rs.getTimestamp(2));
// System.out.println(“new flight:” +flight1.getflno()); Correct output printed here
}
}
finally{
closeResultSet(rs);
closePreparedStatement(ps);
}
return flight;
}
这是顶层代码的一部分-----------文件名:Display。爪哇
static Flight showFlights(ResultSet rs) throws SQLException {
Flight flight1 = new Flight();
AirDB.selectFlight(flight1);
// flight1.setflno(rs.getInt(1));
// flight1.settime(rs.getTimestamp(2));
System.out.println("New flight " + flight1.getflno());//OP: New flight 0
return flight1;
}
这是我的班机——班机。爪哇
public Flight() {
flno = 0;
time = null;
}
public Flight(int flno ,Timestamp time)
{
this.flno = flno;
this.time = time;
}
public int getflno(){
return flno;
}
public void setflno(int flno){
this.flno = flno;
}
public Timestamp gettime(){
return time;
}
public void settime(Timestamp time){
this.time = time;
}
我得到0(默认值)作为我的输出,这是不正确的。我想打印顶级java文件的输出。我尝试使用flight1=AssignFlights1。飞行表演(rs);在FlightDB中。java也是
感谢您查看此代码。你能帮我一下吗。谢谢
# 1 楼答案
您应该返回
flight1
对象而不是flight
,如下所示:另外,不要对单个记录使用
while
,而要对单个记录使用if
# 2 楼答案
您返回了错误的对象(另请参阅我的内联注释)
试试看
此外,如果您正确缩进了代码,那么阅读和调试就会容易得多