DriverManager.getConnection("jdbc:mysql:localhost:3306/testdb","root","root");
(or)
DataSource ds = new {some class which implements DataSource interface};
ds.getConnection("root","root");
使用DataSource优先于DriverManager.getConnection();
每个教程都建议使用DataSource,因为它比DriverManager有一些优势。据我所知,(纠正我,如果我错了)连接池是我们在DataSource中获得的主要好处(也可能是其他好处)。
在这种情况下,如果我的要求是我需要在我的桌面java应用程序中连接池,那么我该如何实现呢?请不要把我和JNDI混淆等等......
就像我正在使用哪个数据库(mysql),供应商应该提供一个实现DataSource接口的类。例如:MysqlDataSource。
如果是这样......以下代码是否正确......?它是否为我提供了连接池优势?我该如何确保?
MysqlDataSource ds = new MysqlDataSource();
ds.setUrl("jdbc:mysql://localhost:3306/testdb");
ds.setUser("root");
ds.setPassword("root");
Connection connection = ds.getConnection();
答案 0 :(得分:1)
我使用了Tomcat Pool Datasource。 如果您需要在独立应用程序(应用程序或Web服务器之外)中进行数据库连接,则可以尝试使用此连接。
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>7.0.35</version>
</dependency>
DataSource ds = new DataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3307/pcmDB");
ds.setUsername("user");
ds.setPassword("password");
ds.setInitialSize(5);
ds.setMaxActive(10);
ds.setMaxIdle(5);
ds.setMinIdle(2);
一些参考文献
http://www.tomcatexpert.com/blog/2010/04/01/configuring-jdbc-pool-high-concurrency
答案 1 :(得分:-2)
尝试第三方lib。
您可以查看http://jolbox.com/,它易于学习和使用。