我无法弄清楚如何从mySQL获取数据。这是我第一次尝试使用java与mysql进行交互,其安静令人困惑。
我想要这段代码要做的就是进入我的db find" table"然后得到"列"的值那些人的地方' name =" name"。这就是我所拥有的
public boolean useProspawn(String column, String name ){
//long time = System.currentTimeMillis()/1000;
//long prevTime = 0;
Calendar calendar = Calendar.getInstance();
java.sql.Timestamp curTime = new java.sql.Timestamp(calendar.getTime().getTime());
java.sql.Timestamp prevTime;
long diff = 0;
long duration = 0;
try {
PreparedStatement ps = DatabaseConnection.getConnection().prepareStatement("SELECT ? FROM accounts WHERE name = ?");
ps.setString(1, column);
ps.setString(2, name);
ResultSet rs = ps.executeQuery();
prevTime = rs.getTimestamp(column);
ps.close();
rs.close();
} catch (SQLException e) {
System.out.println("Error getting player's pro spawner times:"); //THIS IS THE ERROR THAT IS GETTING THROWN INTO THE CMD CONSOLE
System.out.println(e);
return false;
}
diff = curTime.getTime() - prevTime.getTime();
duration = TimeUnit.MILLISECONDS.toHours(diff);
if (duration < 24){
return false;
} else {
try {
String psStatement = "UPDATE accounts SET ?=? WHERE name=?";
PreparedStatement ps = DatabaseConnection.getConnection().prepareStatement(psStatement);
ps.setString(1, column);
ps.setTimestamp(2, curTime);
ps.setString(3,name);
ResultSet rs = ps.executeQuery();
ps.close();
rs.close();
return true; // can use spawner
} catch (SQLException e) {
System.out.println("Error updating player's pro spawner times..");
return false;
}
}
}
我注意到我在我的&#34;尝试/捕获&#34;声明,因为唯一能输出到cmd的是&#34;错误得到...&#34;声明。有什么想法吗?
答案 0 :(得分:0)
一个明显的错误是您使用ResultSet进行选择的方式不正确。在获取第一行值之前,必须先在ResultSet上调用next。
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
}