请给个jdbc连接池的例子(连接Oracle,用的tomcat服务器)
不要写属性文件,简单一点。本人现在学mvc模式。运用连接池是想解决并发问题。请详细解释,解答完美者再追加30积分请不要用到properties(属性文件)用户scott,...
不要写属性文件,简单一点。本人现在学mvc模式。运用连接池是想解决并发问题。请详细解释,解答完美者再追加30积分
请不要用到properties(属性文件)用户scott,密码tiger为例子。谢谢!不是上述要求一律不采纳。 展开
请不要用到properties(属性文件)用户scott,密码tiger为例子。谢谢!不是上述要求一律不采纳。 展开
2个回答
展开全部
SystemConfigResources.properties
#db config
DRIVER_NAME=oracle.jdbc.driver.OracleDriver
DATABASE_URL=jdbc:oracle:thin:@127.0.0.1:1521:Test
DATABASE_USER=Test
DATABASE_PASSWORD=Test
#c3p0 config
Initial_PoolSize=10
Min_PoolSize=10
Max_PoolSize=50
Acquire_Increment=5
TIMEOUT=5000
MAX_IdleTime=1800
Idle_Test_Period=3000
Validate=true
SystemConfig.java
package com.kevin.common;
import java.util.*;
public class SystemConfig ...{
static String configFile = "com.kevin.common.SystemConfigResources";
public static String getConfigInfomation(String itemIndex) ...{
try ...{
ResourceBundle resource = ResourceBundle.getBundle(configFile);
return resource.getString(itemIndex);
} catch (Exception e) ...{
return "";
}
}
}
DBConnectionManager.java
package com.kevin.common.database;
import java.sql.*;
import com.kevin.common.*;
import com.mchange.v2.c3p0.*;
public class DBConnectionManager ...{
private static ComboPooledDataSource cpds = null;
public static void init() ...{
// 建立数据库连接池
String DRIVER_NAME = SystemConfig.getConfigInfomation("DRIVER_NAME"); // 驱动器
String DATABASE_URL = SystemConfig.getConfigInfomation("DATABASE_URL"); // 数据库连接url
String DATABASE_USER = SystemConfig.getConfigInfomation("DATABASE_USER"); // 数据库用户名
String DATABASE_PASSWORD = SystemConfig.getConfigInfomation("DATABASE_PASSWORD"); // 数据库密码
int Min_PoolSize = 5;
int Max_PoolSize = 50;
int Acquire_Increment = 5;
int Initial_PoolSize = 10;
// 每隔3000s测试连接是否可以正常使用
int Idle_Test_Period = 3000;
// 每次连接验证连接是否可用
String Validate = SystemConfig.getConfigInfomation("Validate");
if (Validate.equals("")) ...{
Validate = "false";
}
// 最小连接数
try ...{
Min_PoolSize = Integer.parseInt(SystemConfig.getConfigInfomation("Min_PoolSize"));
} catch (Exception ex) ...{
ex.printStackTrace();
}
// 增量条数
try ...{
Acquire_Increment = Integer.parseInt(SystemConfig.getConfigInfomation("Acquire_Increment"));
} catch (Exception ex) ...{
ex.printStackTrace();
}
// 最大连接数
try ...{
Max_PoolSize = Integer.parseInt(SystemConfig.getConfigInfomation("Max_PoolSize"));
} catch (Exception ex) ...{
ex.printStackTrace();
}
// 初始化连接数
try ...{
Initial_PoolSize = Integer.parseInt(SystemConfig.getConfigInfomation("Initial_PoolSize"));
} catch (Exception ex) ...{
ex.printStackTrace();
}
// 每隔3000s测试连接是否可以正常使用
try ...{
Idle_Test_Period = Integer.parseInt(SystemConfig.getConfigInfomation("Idle_Test_Period"));
} catch (Exception ex) ...{
ex.printStackTrace();
}
try ...{
cpds = new ComboPooledDataSource();
cpds.setDriverClass(DRIVER_NAME); // 驱动器
cpds.setJdbcUrl(DATABASE_URL); // 数据库url
cpds.setUser(DATABASE_USER); // 用户名
cpds.setPassword(DATABASE_PASSWORD); // 密码
cpds.setInitialPoolSize(Initial_PoolSize); // 初始化连接池大小
cpds.setMinPoolSize(Min_PoolSize); // 最少连接数
cpds.setMaxPoolSize(Max_PoolSize); // 最大连接数
cpds.setAcquireIncrement(Acquire_Increment); // 连接数的增量
cpds.setIdleConnectionTestPeriod(Idle_Test_Period); // 测连接有效的时间间隔
cpds.setTestConnectionOnCheckout(Boolean.getBoolean(Validate)); // 每次连接验证连接是否可用
} catch (Exception ex) ...{
ex.printStackTrace();
}
}
public static Connection getConnection() ...{
Connection connection = null;
try ...{
if (cpds == null) ...{
init();
}
// getconnection
connection = cpds.getConnection();
} catch (SQLException ex) ...{
ex.printStackTrace();
}
return connection;
}
public static void release() ...{
try ...{
if (cpds != null) ...{
cpds.close();
}
} catch (Exception ex) ...{
ex.printStackTrace();
}
}
}
PS:如果你不想用配置文件,就把需要的直接写到相应的位置就行了,这个是开源的成熟的连接池。c3p0的。网上随处都可下到它的 jar包。不会的找我。
#db config
DRIVER_NAME=oracle.jdbc.driver.OracleDriver
DATABASE_URL=jdbc:oracle:thin:@127.0.0.1:1521:Test
DATABASE_USER=Test
DATABASE_PASSWORD=Test
#c3p0 config
Initial_PoolSize=10
Min_PoolSize=10
Max_PoolSize=50
Acquire_Increment=5
TIMEOUT=5000
MAX_IdleTime=1800
Idle_Test_Period=3000
Validate=true
SystemConfig.java
package com.kevin.common;
import java.util.*;
public class SystemConfig ...{
static String configFile = "com.kevin.common.SystemConfigResources";
public static String getConfigInfomation(String itemIndex) ...{
try ...{
ResourceBundle resource = ResourceBundle.getBundle(configFile);
return resource.getString(itemIndex);
} catch (Exception e) ...{
return "";
}
}
}
DBConnectionManager.java
package com.kevin.common.database;
import java.sql.*;
import com.kevin.common.*;
import com.mchange.v2.c3p0.*;
public class DBConnectionManager ...{
private static ComboPooledDataSource cpds = null;
public static void init() ...{
// 建立数据库连接池
String DRIVER_NAME = SystemConfig.getConfigInfomation("DRIVER_NAME"); // 驱动器
String DATABASE_URL = SystemConfig.getConfigInfomation("DATABASE_URL"); // 数据库连接url
String DATABASE_USER = SystemConfig.getConfigInfomation("DATABASE_USER"); // 数据库用户名
String DATABASE_PASSWORD = SystemConfig.getConfigInfomation("DATABASE_PASSWORD"); // 数据库密码
int Min_PoolSize = 5;
int Max_PoolSize = 50;
int Acquire_Increment = 5;
int Initial_PoolSize = 10;
// 每隔3000s测试连接是否可以正常使用
int Idle_Test_Period = 3000;
// 每次连接验证连接是否可用
String Validate = SystemConfig.getConfigInfomation("Validate");
if (Validate.equals("")) ...{
Validate = "false";
}
// 最小连接数
try ...{
Min_PoolSize = Integer.parseInt(SystemConfig.getConfigInfomation("Min_PoolSize"));
} catch (Exception ex) ...{
ex.printStackTrace();
}
// 增量条数
try ...{
Acquire_Increment = Integer.parseInt(SystemConfig.getConfigInfomation("Acquire_Increment"));
} catch (Exception ex) ...{
ex.printStackTrace();
}
// 最大连接数
try ...{
Max_PoolSize = Integer.parseInt(SystemConfig.getConfigInfomation("Max_PoolSize"));
} catch (Exception ex) ...{
ex.printStackTrace();
}
// 初始化连接数
try ...{
Initial_PoolSize = Integer.parseInt(SystemConfig.getConfigInfomation("Initial_PoolSize"));
} catch (Exception ex) ...{
ex.printStackTrace();
}
// 每隔3000s测试连接是否可以正常使用
try ...{
Idle_Test_Period = Integer.parseInt(SystemConfig.getConfigInfomation("Idle_Test_Period"));
} catch (Exception ex) ...{
ex.printStackTrace();
}
try ...{
cpds = new ComboPooledDataSource();
cpds.setDriverClass(DRIVER_NAME); // 驱动器
cpds.setJdbcUrl(DATABASE_URL); // 数据库url
cpds.setUser(DATABASE_USER); // 用户名
cpds.setPassword(DATABASE_PASSWORD); // 密码
cpds.setInitialPoolSize(Initial_PoolSize); // 初始化连接池大小
cpds.setMinPoolSize(Min_PoolSize); // 最少连接数
cpds.setMaxPoolSize(Max_PoolSize); // 最大连接数
cpds.setAcquireIncrement(Acquire_Increment); // 连接数的增量
cpds.setIdleConnectionTestPeriod(Idle_Test_Period); // 测连接有效的时间间隔
cpds.setTestConnectionOnCheckout(Boolean.getBoolean(Validate)); // 每次连接验证连接是否可用
} catch (Exception ex) ...{
ex.printStackTrace();
}
}
public static Connection getConnection() ...{
Connection connection = null;
try ...{
if (cpds == null) ...{
init();
}
// getconnection
connection = cpds.getConnection();
} catch (SQLException ex) ...{
ex.printStackTrace();
}
return connection;
}
public static void release() ...{
try ...{
if (cpds != null) ...{
cpds.close();
}
} catch (Exception ex) ...{
ex.printStackTrace();
}
}
}
PS:如果你不想用配置文件,就把需要的直接写到相应的位置就行了,这个是开源的成熟的连接池。c3p0的。网上随处都可下到它的 jar包。不会的找我。
展开全部
import java.sql.*;
public class DatabaseLink {
public static void main(String[] args){
Connection con; //用于连接数据库
Statement stmt; //用于执行SQL语句
try{
//加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//标识URL,数据源为kh
String url = "jdbc:odbc:kh"; //用kh标识数据库CDInfor.mdb
//创建Connection对象
con=DriverManager.getConnection(url);
System.out.println("成功连接数据库!");
con.close();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
public class DatabaseLink {
public static void main(String[] args){
Connection con; //用于连接数据库
Statement stmt; //用于执行SQL语句
try{
//加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//标识URL,数据源为kh
String url = "jdbc:odbc:kh"; //用kh标识数据库CDInfor.mdb
//创建Connection对象
con=DriverManager.getConnection(url);
System.out.println("成功连接数据库!");
con.close();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询