我得到了这段代码,但每次到rs.getTime("startTime").toLocalTime()时都会出错
public int loadAttractionsFromDB(String dbName){
int counter = 0;
Connection c = null;
try
{
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:"+dbName);
System.out.println("Opened database successfully");
Statement stmt = c.createStatement();
String q = "select attName, startTime, endTime, duration from Attractions where park == 1";
System.out.println(q);
ResultSet rs = stmt.executeQuery( q );
while ( rs.next() )
{
addAttraction(new Attraction(rs.getString("attName"), rs.getTime("startTime").toLocalTime(),rs.getTime("endTime").toLocalTime(), rs.getInt("duration")));
counter++;
}
rs.close();
stmt.close();
c.close();
}
catch ( Exception e )
{
System.err.println( "ERROR : "+ e.getMessage() );
}
return counter;发布于 2019-12-18 18:16:08
如果要将ResultSet.getTime(...)返回的java.sql.Time实例转换为LocalTime实例,请执行以下操作
LocalTime localTime = LocalTime.from(rs.getTime("startTime").toInstant());而不是
LocalTime localTime = rs.getTime("startTime").toLocalTime();因为在所有的Java版本at least in version 7中似乎都没有方法java.sql.Time.toLocalTime(),所以没有这样的方法。
发布于 2019-12-18 19:00:01
来自sql的时间变量的输出是一个字符串。因此您必须使用rs.getString("startTime"),然后将其解析为LocalTime LocalTime.parse(rs.getString("startTime"))
https://stackoverflow.com/questions/59389620
复制相似问题