JDBC种类的连接

时间:2017-03-23 15:14:40

标签: java mysql database jdbc

我正在使用Java和MySQL(用于连接数据库的JDBC)创建用于库管理的应用程序,我有一个问题,我检查了很多主题,书籍和网站,但我找不到好的答案给我。这是处理连接的好方法吗?我认为在这种情况下,整个应用程序的一个连接是不错的选择。我的想法是,当我需要使用Connection对象时,在每个类的每个函数中,这些函数都需要一个连接参数。在主类我将调用管理器对象'Man'和每个构造函数等我将传递Man.getMyConn()作为此参数,并在主框架关闭时调用Man.close()。这不好主意吗?也许我应该使用单例模式或连接池? 对不起我的英语,我还在学习。

public class manager {
private Connection myConn;

public manager() throws Exception {


    Properties props = new Properties();
    props.load(new FileInputStream("app.properties"));

    String user = props.getProperty("user");
    String password = props.getProperty("password");
    String dburl = props.getProperty("dburl");


    myConn = DriverManager.getConnection(dburl, user, password);
    System.out.println("DB connection successful to: " + dburl);
}

public Connection getMyConn() {
    return myConn;
}
  //close class etc.
}

2 个答案:

答案 0 :(得分:0)

通常不是。进一步的答案取决于应用程序的类型。如果您正在制作Web应用程序,那么您一定要使用连接池。如果你正在制作桌面应用程序(当时只有一个用户可以访问它),然后您可以在每个请求时打开和关闭连接。

答案 1 :(得分:0)

我有自己的工作应用程序。正如@Branislav所说,如果你想做多个并发查询,那就不够了。还存在与数据库的连接可能丢失的危险,并且您需要重新启动应用程序才能获得新的应用程序,除非您编写代码来捕获它并重新创建连接。

使用单例会过于复杂。使用getConnection()方法(正如您所做的那样)非常重要,因为这意味着如果您发现需要,可以在以后轻松更改代码以使用池。