2

データベースに接続するための私のコードは、次のように BasicDataSource を使用しています. 私の質問は、私のコードはプール接続を提供しますか?もしそうなら、効率的なプーリングを提供するために、次のメソッドまたはコンストラクターでコードの接続セクションを保持する必要がありますか? クラスの状態の注釈はどうすればよいですか?@ステートフル?

        // Connection section start
        BasicDataSource bs = new BasicDataSource();
        PreparedStatement ps = null;
        Connection con = null;
        try {
            bs.setDriverClassName("com.mysql.jdbc.Driver");
            bs.setUrl("jdbc:mysql://localhost/myDb");
            bs.setUsername("root");
            bs.setPassword("");
            con = bs.getConnection();
            System.out.println("Connecting");
        // Connection section end

            ps = con.prepareStatement("Select *"
                    + " from Client WHERE Username = ? ");
            ps.setString(1, username);
            ResultSet r = ps.executeQuery();
            if (r.next()) {
                con.close();
                return "true";
            }
4

1 に答える 1

4

BasicDataSource接続プールを実装します。ただし、毎回新しいプールを作成する場合、それは役に立ちません。データソースを一度作成して、どこでも再利用します。

通常、Java EEでは、データソースを挿入します。つまり、コンテナがデータソースを管理します。Beanにデータソースを注入するのは簡単です

@Resource
private DataSource movieDatabase;

この例を参照してください。ただし、データソースの構成は、使用しているコンテナーによって異なります。ステートフルBeanとスタットレスBeanに同じデータソースを使用できます。

于 2013-02-12T07:22:05.653 に答える