我正在尝试创建我的第一个连接池。我正在使用Tomcat 7和MySQL DB创建Java
Web应用程序,并且我想创建尽可能简单的连接池。我看了几本教程,但对我来说还不是很清楚,所以我想请您确认我是否做得很好。
我已经编写了以下类作为连接池管理器:
package dao.mysql;
import java.sql.Connection;
import java.sql.SQLException;
import org.apache.tomcat.jdbc.pool.DataSource;
import org.apache.tomcat.jdbc.pool.PoolProperties;
public class MySQLConnectionPool {
private static DataSource datasource;
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/mydb";
private static String username = "user";
private static String password = "password";
public MySQLConnectionPool() {
datasource = new DataSource(configurePoolProperties(driver, url, username, password));
}
private PoolProperties configurePoolProperties(String driver, String url, String username, String password) {
PoolProperties properties = new PoolProperties();
properties.setDriverClassName(driver);
properties.setUrl(url);
properties.setUsername(username);
properties.setPassword(password);
return properties;
}
public static synchronized Connection getConnection() {
Connection connection = null;
try {
connection = datasource.getConnection();
} catch (SQLException ex) {
System.out.println("Error while getting a connection from the pool! \nSQL state:" + ex.getSQLState() + "\nMESSAGE" + ex.getMessage());
}
return connection;
}
}
我不知道 静态 属性或 同步的 。
而且我不确定池的“客户端”类。我了解他们只需使用
Connection con = MySQLConnectionPool.getConnection();
最后使用
con.close();
就是这样吗?而且,有没有更简单或更完善的方法来做到这一点?
非常感谢!
这是错误的方法。
Tomcat已经有一个连接池,您可以通过目录context.xml
中的进行配置和设置,而无需任何代码conf
。
在这里定义它之后,您要做的就是在代码中查找JNDI DataSource。对所有内容进行硬编码(并重新发明轮子)是一个非常糟糕的主意。
要了解如何配置JNDI数据源,请查看手册:http : //tomcat.apache.org/tomcat-7.0-doc/jndi-
datasource-examples-howto.html
Tomcat手册中还有一个有关如何从池中获取连接的示例:
InitialContext cxt = new InitialContext();
DataSource ds = (DataSource) cxt.lookup( "java:/comp/env/jdbc/dsname" );
dsname
您在其中提供的名称在哪里context.xml
本文向大家介绍java连接mysql数据库 java连接sql server数据库,包括了java连接mysql数据库 java连接sql server数据库的使用技巧和注意事项,需要的朋友参考一下 在java的应用中,我们经常会对数据库进行必要的操作,下来我们就了解一下如何用java连接mysql数据库 以及java连接sql server数据库 一、mysql 二、sql server 以上就
问题内容: 对于J2EE容器 之外 的Java应用程序,哪个连接池库是最好的? 我听说c3p0已经过时了。 雅加达的公共池库已不再开发 因此,我只剩下BoneCP和DBPool了。从我可以看出,两者活动有限。我可以看到的主要区别是性能,BoneCP似乎可以与之抗衡。但是,文档非常薄弱。 您在现实世界中使用了哪个数据库池库,为什么?好的和坏的是什么? 问题答案: 在工作中,我们使用了BoneCP(作
我从几周前开始学习使用java,我想在简单的java控制台应用程序中使用Hibernate。我下载了Hibernate ORM的最新版本(4.3.8) 我将这个JAR添加到我的类路径中: com.mysql.jdbc_5.1.5.jar sqlite-jdbc-3.8.7.jar Hibernate库\antlr-2.7.7.jar Hibernate库\dom4j-1.6.1.jar Hiber
本文向大家介绍php基础之连接mysql数据库和查询数据,包括了php基础之连接mysql数据库和查询数据的使用技巧和注意事项,需要的朋友参考一下 连接数据库,有三种方法 1. 常规方式: //mysql_fetch_row 提取的结果是没有查询中的字段名了(也就是没有键id,GoodsName,只有值),如下图: //mysql_fetch_assoc 提取的结果有键值,如下图: //mys
我在应用程序中使用连接池(snaq.db.ConnectionPool)。连接池的初始化方式如下: 使用的DB池值是: 我的应用程序在某处泄漏连接(连接未被释放),因此连接池已耗尽。我现在已经修好了密码。 空闲超时后连接不应该关闭吗?如果这不是正确的假设,有没有办法关闭打开的空闲连接(仅通过java代码)?
连接数据库 在能够对MongDB进行操作之前,需要使用BuguFramework创建一个数据库连接,代码如下: BuguConnection conn = BuguFramework.getInstance().createConnection(); conn.connect("192.168.0.100", 27017, "mydb", "username", "password"); 也可以