如何使用java从mysql获取数据

时间:2014-06-30 00:08:06

标签: java mysql

我无法弄清楚如何从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;声明。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

一个明显的错误是您使用ResultSet进行选择的方式不正确。在获取第一行值之前,必须先在ResultSet上调用next。

ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
}

JDBC Basic