jdk1.5是否支持这样调用获取实例private DBConnectionPool connMgr = DBConnectionPool.getInstance();
/**
* 引用数据库的唯一实例
*/
private static DBConnectionPool instance = new DBConnectionPool();
/**.
* 返回唯一实例.如果是第一次调用此方法,则创建实例
*
* @return DBConnectionPool 唯一实例
*/
public static DBConnectionPool getInstance() {
return instance;
}
如果支持,为什么报错,我仔细检查过编译版本和导入的jdk包了,都是1.5。
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at cn.qtone.appserv.dbmanager.DBOperation.<init>(DBOperation.java:24)
at cn.qtone.appserv.dbmanager.Test.main(Test.java:6)
是否我写的有问题,如果不是这样写,提供一个例子,谢谢。附源码:
package cn.qtone.appserv.dbmanager;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.util.Properties;
import org.apache.log4j.Logger;
import sun.util.logging.resources.logging;
import com.jolbox.bonecp.BoneCP;
import com.jolbox.bonecp.BoneCPConfig;
public class DBConnectionPool {
private static Logger logger = Logger.getLogger(DBConnectionPool2.class);
private static String poolName = "appServerPool"; // 连接池名字
private BoneCP ds = null; // 指向数据源
static {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (Exception e) {
logger.error("加载sqlserver jdbc驱动失败!");
}
}
/**
* 建构函数私有以防止其它对象创建本类实例
*/
private DBConnectionPool() {
InputStream is = getClass().getResourceAsStream("/db.ini");
Properties dbProps = new Properties();
try {
dbProps.load(is);
} catch (Exception e) {
logger.warn("不能读取配置文件 db.ini,请确保db.ini在 CLASSPATH 路径中");
return;
}
String url = dbProps.getProperty("url").trim();
if (url == null) {
logger.warn("没有为连接池" + poolName + "指定URL");
}
String userName = dbProps.getProperty("username").trim();
String password = dbProps.getProperty("password").trim();
int maxConnections = 0;
try {
maxConnections = Integer.parseInt(dbProps.getProperty(
"maxconnections").trim());
} catch (Exception e) {
}
if (maxConnections <= 0)
maxConnections = 30;
try {
// 设置连接池配置信息
BoneCPConfig config = new BoneCPConfig();
// 设置数据库的JDBC URL
config.setJdbcUrl(url);
// 设置数据库用户名
config.setUsername(userName);
// 设置数据库用户密码
config.setPassword(password);
// 设置每60秒检查数据库中的空闲连接数
config.setIdleConnectionTestPeriod(60);
// 设置连接空闲时间(分钟)
config.setIdleMaxAge(30);
// 设置获取connection超时的时间(毫秒)
config.setConnectionTimeout(3000);
// 设置分区,分区数为3
config.setPartitionCount(4);
// 设置每个分区中的最小连接数
config.setMinConnectionsPerPartition(5);