在 Java 中打印 SQL 查询 (JTextPane)

Print SQL Query in Java (JTextPane)

我制作了一个也连接到数据库的简单游戏,一切正常,但我遇到问题的地方是让程序打印我为显示数据库中的条目(分数)所做的查询

String sql = "select * from scores";
        
        try {
            PreparedStatement ps =
                conn.prepareStatement(sql);
                JTP.setText(""+ps.toString());
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

当我 运行 游戏时(记分板是通过按下按钮显示的)并且当我打开记分板时,我得到的文本是这样的:

"org.sqlite.jdbc4.JDBC4PreparedStatement@691f5716"

我对所有事情都比较陌生 Java,所以我不知道这意味着什么...有什么想法吗?

(编辑:JTP 是 JTextPane)

希望你一切都好。 我认为问题在于您准备了语句,但从未 运行 查询并获得结果。

    PreparedStatement ps = conn.prepareStatement(sql);
    ...you run the query.. an then use the results
    ...
    JTP.setText(""+results.toString());


    try
    {
      // create our mysql database connection
      String myDriver = "org.gjt.mm.mysql.Driver";
      String myUrl = "jdbc:mysql://localhost/test";
      Class.forName(myDriver);
      Connection conn = DriverManager.getConnection(myUrl, "root", "");
      
      String query = "SELECT * FROM SCORES";

      // create the java statement
      Statement st = conn.createStatement();
      
      // execute the query, and get a java resultset
      ResultSet rs = st.executeQuery(query);
      
      // iterate through the java resultset
      while (rs.next())
      {
        int id = rs.getInt("id");
        String score1 = rs.getString("score1");
        String score2 = rs.getString("score2");
        
        // print the results
        System.out.format("%s, %s, %s\n", id, score1, score2);
      }
      st.close();
    }
    catch (Exception e)
    {
      System.err.println("Got an exception! ");
      System.err.println(e.getMessage());
    }

为了您的帮助,请阅读有关 Java 及其与数据库交互的对象的更多信息。

嗯,问题不够明确。我认为您要做的是从数据库中获取查询结果。 这是一种方法: 这个方法将执行我们的查询

 public ResultSet selectEntity(String query) {
        ResultSet result;
        try {
            PreparedStatement statement = connection.prepareStatement(query);
            result = statement.executeQuery();
        } catch (SQLException ex) {
            //handle your exception here
            return null;
        }
        return result;
 }

这个方法会得到查询的结果,传给我们的JTextPane

private void printScore()
{
    //we're calling the method that executes the query
    ResultSet resultSet = this.selectEntity("SELECT * FROM scores");
    try {
        // I assume that the score is saved as Integer in the DB, so I'll use **getInt()**
        while(resultSet.next()) textPane.setText(""+resultSet.getInt(1));           
    } catch (SQLException e) {
        //handle your exception here
    }
}