sqlserver链接池,sqlserver连接池
sqlserver可以用druid连接池吗
DBCP(DataBase connection pool)数据库连接池。是Apache上的一个 java连接池项目,也是 tomcat使用的连接池组件。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。dbcp没有自动的去回收空闲连接的功能。
目前创新互联已为近1000家的企业提供了网站建设、域名、网站空间、网站运营、企业网站设计、罗城网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
java连接SqlServer2008的数据库连接池怎么使用
java连接SqlServer2008的数据库连接池使用:
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Vector;
/**数据库连接池的公共类 **/
public class ConnectionPool {
private VectorConnection pool;//声明集合,里面只能是放Connection
/**
* 声明要的东西
*/
private String url = "jdbc:sqlserver://localhost:1433; database=ajax";
private String username = "sa";
private String password = "sa123";
private String driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
/**
* 连接池的大小,也就是连接池中有多少个数据库连接
*/
private int poolSize = 5;
private static ConnectionPool instance = null;
/**
* 私有的构造方法,禁止外部创建本类的对象,要想获得本类的对象,通过codegetIstance/code方法
* 使用了设计模式中的单子模式
*/
private ConnectionPool() {
init();
}
/**
* 连接池初始化方法,读取属性文件的内容 建立连接池中的初始连
*/
private void init() {
pool = new VectorConnection(poolSize);
//readConfig();
addConnection();
}
/**
* 返回连接到连接池
*/
public synchronized void release(Connection conn) {
pool.add(conn);
}
/**
* 关闭连接池中的所有数据库连接
*/
public synchronized void closePool() {
for (int i = 0; i pool.size(); i++) {
try {
((Connection) pool.get(i)).close();
} catch (SQLException e) {
e.printStackTrace();
}
pool.remove(i);
}
}
/**
* 返回当前连接池的对象
*/
public static ConnectionPool getInstance() {
if (instance == null) {
instance = new ConnectionPool();
}
return instance;
}
/**
* 返回连接池中的一个数据库连接
*/
public synchronized Connection getConnection() {
if (pool.size() 0) {
Connection conn = pool.get(0);
pool.remove(conn);
return conn;
} else {
return null;
}
}
/**
* 在连接池中创建初始设置的的数据库连接
*/
private void addConnection() {
Connection conn = null;
for (int i = 0; i poolSize; i++) {
try {
Class.forName(driverClassName);
conn = java.sql.DriverManager.getConnection(url, username,
password);
pool.add(conn);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
配置Tomcat7 Sqlserver连接池。
请参考
首先配置:META-INF/context.xml:
?xml version="1.0" encoding="UTF-8"?
Context path="" reloadable="true" crossContext="true"
Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root" password="root"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/db_name" /
/Context
再配置:WEB-INF/web.xml:在web-app元素下
resource-ref
descriptionDB Connection/description
res-ref-namejdbc/TestDB/res-ref-name
res-typejavax.sql.DataSource/res-type
res-authContainer/res-auth
/resource-ref
程序:
InitialContext ctx = new InitialContext();
Context envContext = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/TestDB");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
stmt.execute(“执行的SQL语句”);
stmt.close();
conn.close();
sqlserver连接池,为什么我的一个页面每刷新一次,数据库连接池就多一个链接数,同个网站下的别的页面
应该是Connection对象没有Close造成的,导致它没有回到连接池里去。
检查一下代码,要么忘写了,要么是异常或提前返回导致没有执行Close
本文标题:sqlserver链接池,sqlserver连接池
文章来源:http://myzitong.com/article/dsechec.html