说明:以下两个文件是书上的例子里的。
我将他们放在了c:/test/下面
在DOS:中我输入
javac DBConnPool.java //成功
javac DBConnManager.java //出错错误提示如下:
DBConnManage.java:83:cannot resove symbol
symbol:class DBConnPool
location:class test.DBConnManage
'DBConnPool pool = new DBConnPool(poolname, drivername, dbid, username, passwd, maxconn);—————————————————————————————————————
—————————————————————————————————————
———————DBConnPool.java——————————————————————package test;
import java.sql.*;
import java.util.*;/*连接池类.能够根据要求创建新连接,直到最大连接数为止.*/
public class DBConnPool {
//实际使用中的连接数
private int inUse=0;
//空闲连接
private Vector connections = new Vector();
//连接池名
private String poolname;
//数据库标识
private String dbid;
//驱动程序名
private String drivername;
//数据库账号
private String username;
//数据库密码
private String passwd;
//最大连接数
private int maxconn; public DBConnPool(String poolname, String drivername, String dbid, String username, String passwd, int maxconn) {
this.poolname = poolname;
this.dbid = dbid;
this.drivername = drivername;
this.username = username;
this.passwd = passwd;
this.maxconn = maxconn;
} /*将连接返回给连接池*/
public synchronized void releaseConnection(Connection con) {
// 将指定连接加入到向量末尾
connections.addElement(con);
//连接数减一
inUse--;
} /*从连接池得到一个连接*/
public synchronized Connection getConnection() {
Connection con = null;
if (connections.size() > 0) {
// 获取连接列表中获得第一个连接
con = (Connection) connections.elementAt(0);
connections.removeElementAt(0);
//如果此连接已关闭,则继续获取
try {
if (con.isClosed())
con = getConnection();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
//如果实际使用的连接小于最大连接数,就新创建一个连接
else if (maxconn == 0 || inUse < maxconn) {
con = newConnection();
}
if (con != null) {
//连接数增一
inUse++;
}
//返回一个连接
return con;
} /*创建新的连接*/
private Connection newConnection() {
Connection con = null;
try {
//加载驱动程序
Class.forName(drivername);
//建立连接
con = DriverManager.getConnection(dbid, username, passwd);
}
catch (Exception e) {
e.printStackTrace();
return null;
}
//返回该连接
return con;
} /*关闭所有连接*/
public synchronized void closeConn() {
Enumeration allConnections = connections.elements();
while (allConnections.hasMoreElements()) {
Connection con = (Connection) allConnections.nextElement();
try {
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
connections.removeAllElements();
}
}
——————————————————————————————————————————————————————————————————————————————DBConnManager.java————————————————————————
package test;import java.sql.*;
import java.util.*;/*连接池管理类,可以管理多个数据库连接池*/
public class DBConnManager {
//连接池名列表
private Vector poolnames = new Vector();
//驱动程序名列表
private Vector drivernames = new Vector();
//数据库标识列表
private Vector dbids = new Vector();
//用户名列表
private Vector usernames = new Vector();
//密码列表
private Vector passwds = new Vector();
//最大连接数列表
private Vector maxconns = new Vector();
//连接池队列
private Hashtable connPools = new Hashtable();
public DBConnManager() {
//添加mysql数据库的连接信息
poolnames.addElement("mysql");
drivernames.addElement("org.gjt.mm.mysql.Driver");
dbids.addElement("jdbc:mysql://localhost/testmysql");
usernames.addElement("root");
passwds.addElement("");
maxconns.addElement("10");
//添加access数据库的连接信息
poolnames.addElement("access");
drivernames.addElement("sun.jdbc.odbc.JdbcOdbcDriver");
dbids.addElement("jdbc:odbc:TestData");
usernames.addElement("123456");
passwds.addElement("");
maxconns.addElement("5");
//创建连接池
createPools();
}
/*将连接返回给由指定的连接池*/
public void releaseConnection(String name, Connection con) {
DBConnPool pool = (DBConnPool) connPools.get(name);
if (pool != null)
pool.releaseConnection(con);
}
/*得到一个指定连接池中的连接*/
public Connection getConnection(String name) {
DBConnPool pool = (DBConnPool) connPools.get(name);
if (pool != null)
return pool.getConnection();
return null;
}
/*关闭所有连接*/
public synchronized void closeConns() {
Enumeration allPools = connPools.elements();
while (allPools.hasMoreElements()) {
DBConnPool pool = (DBConnPool) allPools.nextElement();
pool.closeConn();
}
}
/*创建连接池*/
private void createPools() {
for(int i = 0; i<poolnames.size();i++){
String poolname = poolnames.elementAt(i).toString();
String drivername = drivernames.elementAt(i).toString();
String dbid = dbids.elementAt(i).toString();
String username = usernames.elementAt(i).toString();
String passwd = passwds.elementAt(i).toString();
int maxconn=0;
try {
maxconn = Integer.parseInt(maxconns.elementAt(i).toString());
}
catch (NumberFormatException e) {
e.printStackTrace();
}
DBConnPool pool = new DBConnPool(poolname, drivername, dbid, username, passwd, maxconn);
connPools.put(poolname, pool);
}
}
}
—————————————————————————————————————
—————————————————————————————————————
—————————————————————————————————————
我将他们放在了c:/test/下面
在DOS:中我输入
javac DBConnPool.java //成功
javac DBConnManager.java //出错错误提示如下:
DBConnManage.java:83:cannot resove symbol
symbol:class DBConnPool
location:class test.DBConnManage
'DBConnPool pool = new DBConnPool(poolname, drivername, dbid, username, passwd, maxconn);—————————————————————————————————————
—————————————————————————————————————
———————DBConnPool.java——————————————————————package test;
import java.sql.*;
import java.util.*;/*连接池类.能够根据要求创建新连接,直到最大连接数为止.*/
public class DBConnPool {
//实际使用中的连接数
private int inUse=0;
//空闲连接
private Vector connections = new Vector();
//连接池名
private String poolname;
//数据库标识
private String dbid;
//驱动程序名
private String drivername;
//数据库账号
private String username;
//数据库密码
private String passwd;
//最大连接数
private int maxconn; public DBConnPool(String poolname, String drivername, String dbid, String username, String passwd, int maxconn) {
this.poolname = poolname;
this.dbid = dbid;
this.drivername = drivername;
this.username = username;
this.passwd = passwd;
this.maxconn = maxconn;
} /*将连接返回给连接池*/
public synchronized void releaseConnection(Connection con) {
// 将指定连接加入到向量末尾
connections.addElement(con);
//连接数减一
inUse--;
} /*从连接池得到一个连接*/
public synchronized Connection getConnection() {
Connection con = null;
if (connections.size() > 0) {
// 获取连接列表中获得第一个连接
con = (Connection) connections.elementAt(0);
connections.removeElementAt(0);
//如果此连接已关闭,则继续获取
try {
if (con.isClosed())
con = getConnection();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
//如果实际使用的连接小于最大连接数,就新创建一个连接
else if (maxconn == 0 || inUse < maxconn) {
con = newConnection();
}
if (con != null) {
//连接数增一
inUse++;
}
//返回一个连接
return con;
} /*创建新的连接*/
private Connection newConnection() {
Connection con = null;
try {
//加载驱动程序
Class.forName(drivername);
//建立连接
con = DriverManager.getConnection(dbid, username, passwd);
}
catch (Exception e) {
e.printStackTrace();
return null;
}
//返回该连接
return con;
} /*关闭所有连接*/
public synchronized void closeConn() {
Enumeration allConnections = connections.elements();
while (allConnections.hasMoreElements()) {
Connection con = (Connection) allConnections.nextElement();
try {
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
connections.removeAllElements();
}
}
——————————————————————————————————————————————————————————————————————————————DBConnManager.java————————————————————————
package test;import java.sql.*;
import java.util.*;/*连接池管理类,可以管理多个数据库连接池*/
public class DBConnManager {
//连接池名列表
private Vector poolnames = new Vector();
//驱动程序名列表
private Vector drivernames = new Vector();
//数据库标识列表
private Vector dbids = new Vector();
//用户名列表
private Vector usernames = new Vector();
//密码列表
private Vector passwds = new Vector();
//最大连接数列表
private Vector maxconns = new Vector();
//连接池队列
private Hashtable connPools = new Hashtable();
public DBConnManager() {
//添加mysql数据库的连接信息
poolnames.addElement("mysql");
drivernames.addElement("org.gjt.mm.mysql.Driver");
dbids.addElement("jdbc:mysql://localhost/testmysql");
usernames.addElement("root");
passwds.addElement("");
maxconns.addElement("10");
//添加access数据库的连接信息
poolnames.addElement("access");
drivernames.addElement("sun.jdbc.odbc.JdbcOdbcDriver");
dbids.addElement("jdbc:odbc:TestData");
usernames.addElement("123456");
passwds.addElement("");
maxconns.addElement("5");
//创建连接池
createPools();
}
/*将连接返回给由指定的连接池*/
public void releaseConnection(String name, Connection con) {
DBConnPool pool = (DBConnPool) connPools.get(name);
if (pool != null)
pool.releaseConnection(con);
}
/*得到一个指定连接池中的连接*/
public Connection getConnection(String name) {
DBConnPool pool = (DBConnPool) connPools.get(name);
if (pool != null)
return pool.getConnection();
return null;
}
/*关闭所有连接*/
public synchronized void closeConns() {
Enumeration allPools = connPools.elements();
while (allPools.hasMoreElements()) {
DBConnPool pool = (DBConnPool) allPools.nextElement();
pool.closeConn();
}
}
/*创建连接池*/
private void createPools() {
for(int i = 0; i<poolnames.size();i++){
String poolname = poolnames.elementAt(i).toString();
String drivername = drivernames.elementAt(i).toString();
String dbid = dbids.elementAt(i).toString();
String username = usernames.elementAt(i).toString();
String passwd = passwds.elementAt(i).toString();
int maxconn=0;
try {
maxconn = Integer.parseInt(maxconns.elementAt(i).toString());
}
catch (NumberFormatException e) {
e.printStackTrace();
}
DBConnPool pool = new DBConnPool(poolname, drivername, dbid, username, passwd, maxconn);
connPools.put(poolname, pool);
}
}
}
—————————————————————————————————————
—————————————————————————————————————
—————————————————————————————————————
解决方案 »
- 怎么去除JTable上的CTRL+A热键功能?
- java邮件开发出现java.lang.ClassCastException: javax.mail.Session cannot be cast to j错误
- 现在发现, 几日不写代码, 的确手生, 几日不读新书, 的确要落后
- java -jar 的问题
- 心情好,散分
- 类对象之间的数据类型转换 想学习的人请进,要分者请自觉离开!
- 一道scjp考题,有点意思,高手请进
- together中可以打包生成jar吗,怎么做?(together6)
- 我装了j2sdk1.4.0,但是在编译*.java 的时候总是找不到类库文件!
- 为何我用System.in.read()得不到想要的值!!!!!!
- 关于jexcelapi操作excel的问题
- 如何使用java实现包含checkbox的表格。
javac -d c:\test\ DBConnPool.java //成功
javac -d c:\test\ DBConnManager.java //出错
javac -d c:\test\ DBConnManager.java //出错
————————————————————————
不行啊。
javac -d c:\test\ DBConnPool.java
出来一段文字:
javac: no source files
Usage:javac <options><source files>
where possible options includes:
-g....
-g:none...
......
-help....
javac DBConnManager.java
要运行带包的主类的话,使用(假设也放在C盘下面的test包中):
C:\>java test.MainClass给分!!!^_^!!