如何为多个方法使用相同的数据库连接(JAVA)

时间:2016-02-20 12:18:46

标签: java database

大家好,我开始了解JAVA中的数据库连接,并且我正在开发一个需要数据库的迷你应用程序。我想知道使用Connection对象的正确方法是什么,以便我可以使用多种方法。

添加新记录的方法,搜索特定密钥的另一种方法,等等。 我将不得不访问多个表,每个表都有自己的类和方法集。

如果有关于JAVA软件开发的好书,那也可能有用。

2 个答案:

答案 0 :(得分:3)

我认为对于简单的情况,只需打开并关闭每个查询的连接。对于更复杂的情况(如服务器),您可以使用连接池来保存已打开的连接列表

答案 1 :(得分:0)

如果应用程序很小,你可以在每次点击数据库时创建一个连接对象但是如果对数据库的请求数量非常高,你可以使用连接池你可以使用BasicDataSource这是一个apache项目使用单例模式包装基本dataSource的实例,并在每次需要时从该包装类中检索连接对象 的 DataWrapper

import java.sql.Connection;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSourceFactory;

public class DataWrapper {

    private static DataSource datasource;

    private static void initialize() throws Exception {

        Properties props = new Properties();
        props.put("url", "jdbc:mysql://localhost:3306/testbd");
        props.put("password", "root");
        props.put("username", "root");
        props.put("driverClassName", "com.mysql.jdbc.Driver");
        props.put("initialSize", "10");
        props.put("maxTotal", "15");
        props.put("maxIdle", "10");
        props.put("minIdle", "5");
        datasource = BasicDataSourceFactory.createDataSource(props);

    }

    public static synchronized Connection getConnection() throws Exception {
        if (datasource == null) {
            initialize();
        }
        return datasource.getConnection();

    }

}

<强>呼叫者

Connection con=DataWrapper.getConnection();
    PreparedStatement statement=con.prepareStatement("select * from users");

    ResultSet result= statement.executeQuery();
    result.next();
    System.out.println(result.getString(1));
    //dont forget to close the connection object
    con.close();