2

我连接到数据库的代码使用 BasicDataSource 如下,参考Ans我想我的代码创建一个到数据库 ONCE 的物理连接,然后提供池连接。我的问题是,我的代码是否提供池连接?如果提供,我应该将代码的连接部分保留在以下方法中还是在构造函数中以提供有效的池?以及类状态的注释应该如何?@有状态?

        // 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。

于 2013-02-12T07:22:05.653 回答