0

私はJavaの世界にかなり慣れていないので、これを行う方法がよくわかりません。

テーブルをうまく抽出してコンソールに出力するMySQLクラスがあります。ただし、別のクラスからカスタム SQL クエリを実行する必要があり、その方法がわかりません。助けてくれる人はいますか?

mysql クラスは次のとおりです。

import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class mySQL {

    public static void main(String[] args) {

        Connection con = null;
        PreparedStatement pst = null;
        ResultSet rs = null;

        String url = "jdbc:mysql://host:port/database";
        String user = "user";
        String password = "password";

        try {

            con = DriverManager.getConnection(url, user, password);
            pst = con.prepareStatement("SELECT * FROM NFT_users");
            rs = pst.executeQuery();
            con = DriverManager.getConnection(url, user, password);

            while (rs.next()) {
                System.out.print(rs.getInt(1));
                System.out.print(": ");
                System.out.println(rs.getString(2));
            }

        } catch (SQLException ex) {
                Logger lgr = Logger.getLogger(mySQL.class.getName());
                lgr.log(Level.SEVERE, ex.getMessage(), ex);

        } finally {

            try {
                if (rs != null) {
                    rs.close();
                }
                if (pst != null) {
                    pst.close();
                }
                if (con != null) {
                    con.close();
                }

            } catch (SQLException ex) {
                Logger lgr = Logger.getLogger(mySQL.class.getName());
                lgr.log(Level.WARNING, ex.getMessage(), ex);
            }
        }
    }
}
4

1 に答える 1

1

あなたの問題は ではなくSQL、ソフトウェア設計に関するものです。

データへのアクセスを提供することがすべての存在であるクラスを考えてみましょう。すべての接続処理 ( private void loadConnection) を実行し、 のようなメソッドを持っていましたArrayList<User> getUsers()

次に、 のリストが必要な場合Userは、単に を実行するmyDatabaseObject.getUsers()か、別の状況では を実行するだけですmyDatabaseObject.getOtherObjects()。しかし、コードの残りの部分は、SQL や DB への接続について何も知りません。


非常に単純なデータベース アクセス以上のことをしたい場合は、Hibernateの学習を検討する必要があります。ウィキペディアのリンク。このサイトの質問を読み、Hibernate とは何か疑問に思ったことがあるなら、それはまさにこれを行うツールです。

これを自分で行う方法に関しては、接続コードをコンストラクターに入れ、接続をフィールドに保存し、上記のメソッドでクエリを実行します (できれば を使用しPreparedStatementます)。

于 2012-11-30T20:11:57.790 に答える