DBUtils_oldSystem.java
2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package com.bsth.util.db;
import com.mchange.v2.c3p0.DataSources;
import org.apache.log4j.Logger;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
/**
* 老系统数据库连接池(保持少量的连接,不会对老系统有什么影响)
* @author PanZhao
*
*/
//@Component
public class DBUtils_oldSystem {
private static String url = null;
private static String username = null;
private static String pwd = null;
private static DataSource ds_pooled;
static Logger logger = Logger.getLogger(DBUtils_oldSystem.class);
static {
try {
// 1. 加载驱动类
Class.forName("oracle.jdbc.driver.OracleDriver");
url = "jdbc:oracle:thin:@10.10.200.225:1521:orcl";
username = "jjwgps";
pwd = "jjwgps";
// 设置连接数据库的配置信息
DataSource ds_unpooled = DataSources.unpooledDataSource(url,
username, pwd);
Map<String, Object> pool_conf = new HashMap<String, Object>();
// 设置最大连接数
pool_conf.put("maxPoolSize", 5);
pool_conf.put("testConnectionOnCheckout", false);
//异步检测连接的有效性
pool_conf.put("testConnectionOnCheckin", true);
//10分钟检测一次
pool_conf.put("idleConnectionTestPeriod", 60 * 10);
ds_pooled = DataSources.pooledDataSource(ds_unpooled, pool_conf);
} catch (ClassNotFoundException e) {
logger.error(e.toString());
e.printStackTrace();
} catch (SQLException e) {
logger.error("初始化老系统连接池失败,非正式环境请忽略这个问题!");
logger.error(e.toString());
e.printStackTrace();
}
}
/**
* 获取连接对象
*/
public static Connection getConnection() throws SQLException {
return ds_pooled.getConnection();
}
/**
* 释放连接池资源
*/
public static void clearup() {
if (ds_pooled != null) {
try {
DataSources.destroy(ds_pooled);
} catch (SQLException e) {
logger.error(e.toString());
e.printStackTrace();
}
}
}
/**
* 资源关闭
*
* @param rs
* @param stmt
* @param conn
*/
public static void close(ResultSet rs, Statement stmt, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
logger.error(e.toString());
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
logger.error(e.toString());
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
logger.error(e.toString());
e.printStackTrace();
}
}
}
public static DataSource getDataSource(){
return ds_pooled;
}
}