2017-02-08 20 views
1

创建JDBC连接并关闭每个使用预处理语句的Java类或存储过程调用是否是行业标准?看来在执行插入,更新和删除操作时重用连接的方式会更有效,而不是每次实例化类时都建立连接。创建JDBC连接时的行业标准是什么?

我不是要求引用Java Servlets。

感谢您的任何反馈和资源审查。

+3

使用连接池,通过从Servlet容器获取连接,它将为您管理连接池。如果不是Servlet,则应该为连接池使用第三方库,例如请参阅[如何在JDBC中建立连接池?](http://stackoverflow.com/q/283​​5090/5221149) – Andreas

+0

,但如果不使用servlet,仍然可以轻松使用连接池。取决于你的应用程序的工作情况,涉及多少连接以及多久,你需要决定这是否值得做。 (但通常是) – slipperyseal

回答

3

通常应用程序使用由DataSource提供的连接轮询。您不必为此运行应用程序服务器,甚至不需要运行servlet容器。只需实例化实现并从应用程序中使用它。常用的实施方式是Apache Dbcp

ds = new BasicDataSource(); 
    ds.setDriverClassName("com.mysql.jdbc.Driver"); 
    ds.setUsername("root"); 
    ds.setPassword("root"); 
    ds.setUrl("jdbc:mysql://localhost/test"); 
    ... 
    // then later in the application: 
    Connection conn = ds.getConnection(); 
    // do the stuff 
    conn.close(); // only releases conn back to pool 
    ... 
    // or better in Java 7: 
    try (Connection conn = ds.getConnection()) { 
      // do the stuff 
    } 
+0

谢谢大家的反馈意见。创建了一个Connection Manager类,并使用Connection.getConnection()完​​成了工作;就像我可以简单地与一个方法建立联系。请让我知道是否需要发布我的更新代码。 – dangerouslyCoding

0

您可以使用连接池,根据需要您的代码可以从中获取/释放连接。一些流行的是C3P0DBCP。请参阅this answer开始。

相关问题