数据库连接池的问题 但有人说ACCESS不能用连接池希望有人指点迷经-------------------这种说法可能不能成立吧,说白了连接池就是预先建一些连接。如:poolman就是在各数据库驱动之上再建的一个层,它实现池的功能同时屏蔽真正的驱动。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当然可以用拉,我开始就是用ACCESS的。 连接池就是一段java程序而已。 上面说的有点狭隘了连接池就是管理连接的创建,分配,返回,释放连接的程序。一种是已经写好了的,只要配置就可以用的连接池。由于某些原因可能没有支持access的数据库,因而产生了access不能使用连接池的误解。另外就是自己用java写的连接池程序。他既可以是oracle,sqlserver数据库数据库,也可以是access数据库的。 除了JAVA程序外,还要在运行环境中设置一些东西吗??????????? 可以用Access的连接池,下面是连接池的代码贴出2个java文件代码://================= ConnectionBean.java ===================import java.io.Serializable;import java.sql.*;public class ConnectionBean implements java.io.Serializable { private Connection connection = null; private boolean inuse = false; public ConnectionBean() { } public ConnectionBean(Connection value) { if (value!=null) connection = value; } public Connection getConnection() { return connection; } public void setConnection(Connection con) { connection = con; } public void setInuse(boolean value) { inuse = value; } public boolean getInuse() { return inuse; } public boolean inUse() { return inuse; } public void close() { try { connection.close(); } catch (SQLException sqle) { System.err.println(sqle.getMessage()); } } } //==================== PoolBean.java ======================import java.io.Serializable;import java.sql.*;import java.util.*;public class PoolBean implements java.io.Serializable { private String driver = null; private String url = null; private int size = 0; private String username = new String(""); private String password = new String(""); private Vector pool = null; public PoolBean() { } public void setDriver(String value) { if (value!=null) driver=value; } public String getDriver() { return driver; } public void setURL(String value ) { if (value!=null) url=value; } public String getURL() { return url; } public void setSize(int value) { if (value>1) size=value; } public int getSize() { return size; } public void setUsername(String value) { if (value!=null) username=value; } public String getUserName() { return username; } public void setPassword(String value) { if (value!=null) password=value; } public String getPassword() { return password; } private Connection createConnection() throws Exception { Connection con = null; con = DriverManager.getConnection(url,username,password); return con; } public synchronized void initializePool() throws Exception { if (driver==null) throw new Exception("No Driver Name Specified!"); if (url==null) throw new Exception("No URL Specified!"); if (size<1) throw new Exception("Pool size is less than 1!"); try { Class.forName(driver); for (int x=0; x<size; x++) { Connection con = createConnection(); if (con!=null) { ConnectionBean pcon = new ConnectionBean(con); addConnection(pcon); } } } catch (Exception e) { System.err.println(e.getMessage()); throw new Exception(e.getMessage()); } } private void addConnection(ConnectionBean value) { if (pool==null) pool=new Vector(size); pool.addElement(value); } public synchronized void releaseConnection(Connection con) { for (int x=0; x<pool.size(); x++) { ConnectionBean pcon = (ConnectionBean)pool.elementAt(x); if (pcon.getConnection()==con) { System.err.println("Releasing Connection " + x); pcon.setInUse(false); break; } } } public synchronized Connection getConnection() throws Exception { ConnectionBean pcon = null; for (int x=0; x<pool.size(); x++) { pcon = (ConnectionBean)pool.elementAt(x); if (pcon.inUse()==false) { pcon.setInUse(true); return pcon.getConnection(); } } try { Connection con = createConnection(); pcon = new ConnectionBean(con); pcon.setInUse(true); pool.addElement(pcon); } catch (Exception e) { System.err.println(e.getMessage()); throw new Exception(e.getMessage()); } return pcon.getConnection(); } public synchronized void emptyPool() { for (int x=0; x<pool.size(); x++) { System.err.println("Closing JDBC Connection " + x); ConnectionBean pcon = (ConnectionBean)pool.elementAt(x); if (pcon.inUse()==false) pcon.close(); else { try { java.lang.Thread.sleep(30000); pcon.close(); } catch (InterruptedException ie) { System.err.println(ie.getMessage()); } } } } } myeclipse连接 access 谁能推荐一下比较好的学习MySql数据库视频教程的网站 jsp论坛,博客,网站管理系统哪个开源的代码比较好? LOMBOZ "undeploy Module"问题 Excel转换问题 请问jsp插入oracle8i的问题 高分求教Tomcat的配置问题 为什么要java化----来者有分,今日结贴 急需一个mvc的例子有注解最好! jquery EasyUI 我只会用DataGrid显示一张表,如何实现这样动态的多张表格? JSP和SQL SERVER2000老是连不上? 简单 的问题
一种是已经写好了的,只要配置就可以用的连接池。由于某些原因可能没有支持access的数据库,因而产生了access不能使用连接池的误解。另外就是自己用java写的连接池程序。他既可以是oracle,sqlserver数据库数据库,也可以是access数据库的。
贴出2个java文件代码:
//================= ConnectionBean.java ===================
import java.io.Serializable;
import java.sql.*;
public class ConnectionBean implements java.io.Serializable
{
private Connection connection = null;
private boolean inuse = false;
public ConnectionBean()
{ }
public ConnectionBean(Connection value)
{ if (value!=null) connection = value; }
public Connection getConnection()
{ return connection; }
public void setConnection(Connection con)
{ connection = con; }
public void setInuse(boolean value)
{ inuse = value; }
public boolean getInuse()
{ return inuse; }
public boolean inUse()
{ return inuse; }
public void close()
{
try
{ connection.close(); }
catch (SQLException sqle)
{ System.err.println(sqle.getMessage()); }
}
}
import java.io.Serializable;
import java.sql.*;
import java.util.*;
public class PoolBean implements java.io.Serializable
{
private String driver = null;
private String url = null;
private int size = 0;
private String username = new String("");
private String password = new String("");
private Vector pool = null;
public PoolBean() { }
public void setDriver(String value)
{ if (value!=null) driver=value; }
public String getDriver()
{ return driver; }
public void setURL(String value )
{ if (value!=null) url=value; }
public String getURL()
{ return url; }
public void setSize(int value)
{ if (value>1) size=value; }
public int getSize()
{ return size; }
public void setUsername(String value)
{ if (value!=null) username=value; }
public String getUserName()
{ return username; }
public void setPassword(String value)
{ if (value!=null) password=value; }
public String getPassword()
{ return password; }
private Connection createConnection() throws Exception
{
Connection con = null;
con = DriverManager.getConnection(url,username,password);
return con;
}
public synchronized void initializePool() throws Exception
{
if (driver==null)
throw new Exception("No Driver Name Specified!");
if (url==null)
throw new Exception("No URL Specified!");
if (size<1)
throw new Exception("Pool size is less than 1!");
try
{
Class.forName(driver);
for (int x=0; x<size; x++)
{
Connection con = createConnection();
if (con!=null)
{
ConnectionBean pcon = new ConnectionBean(con);
addConnection(pcon);
}
}
}
catch (Exception e)
{
System.err.println(e.getMessage());
throw new Exception(e.getMessage());
}
}
private void addConnection(ConnectionBean value)
{
if (pool==null) pool=new Vector(size);
pool.addElement(value);
}
public synchronized void releaseConnection(Connection con)
{
for (int x=0; x<pool.size(); x++)
{
ConnectionBean pcon =
(ConnectionBean)pool.elementAt(x);
if (pcon.getConnection()==con)
{
System.err.println("Releasing Connection " + x);
pcon.setInUse(false);
break;
}
}
}
public synchronized Connection getConnection()
throws Exception
{
ConnectionBean pcon = null;
for (int x=0; x<pool.size(); x++)
{
pcon = (ConnectionBean)pool.elementAt(x);
if (pcon.inUse()==false)
{
pcon.setInUse(true);
return pcon.getConnection();
}
}
try
{
Connection con = createConnection();
pcon = new ConnectionBean(con);
pcon.setInUse(true);
pool.addElement(pcon);
}
catch (Exception e)
{
System.err.println(e.getMessage());
throw new Exception(e.getMessage());
}
return pcon.getConnection();
}
public synchronized void emptyPool()
{
for (int x=0; x<pool.size(); x++)
{
System.err.println("Closing JDBC Connection " + x);
ConnectionBean pcon =
(ConnectionBean)pool.elementAt(x);
if (pcon.inUse()==false)
pcon.close();
else
{
try
{
java.lang.Thread.sleep(30000);
pcon.close();
}
catch (InterruptedException ie)
{
System.err.println(ie.getMessage());
}
}
}
}
}