OracleBaseDao.java
1.95 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
package com.sitech.ismp.coll.busi.e2e.dao;
import java.io.Reader;
import java.util.Map;
import java.util.Properties;
import org.apache.log4j.Logger;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.sitech.util.DES3;
/**
* ClassName:OracleBaseDao 连接网管Oracle数据库使用
* 注:通常Agent是不能与Oracle直接交互,但是上海电信售中监控比较特殊,可以将Agent提到中间处理层,因此该类目前只用于上海电信售中监控
*
* @author linxc
* @version
* @since Ver 6.1
* @Date 2012 May 9, 2012 9:11:00 AM
*/
public class OracleBaseDao {
protected static Logger logger = Logger.getLogger("DB");
protected static Logger error = Logger.getLogger("ERROR");
protected static SqlMapClient sqlmapClient;
private static String defaultSqlMapConfig = "com/sitech/ismp/coll/busi/e2e/maps/sqlmap.xml";
public OracleBaseDao(Map<String,String> params){
sqlmapClient = getSqlMapClient(defaultSqlMapConfig, params);
}
public static synchronized SqlMapClient getSqlMapClient(String config,
Map<String, String> params) {
if (sqlmapClient == null) {
Reader reader;
try {
String sClassforName = params.get("JDBC.Driver");
String sUrl = params.get("JDBC.ConnectionURL");
String sUserName = params.get("JDBC.Username");
String sPassword = params.get("JDBC.Password");
sPassword = DES3.decrypt(sPassword);
Properties properties = new Properties();
properties.put("SERVERDriver", sClassforName);
properties.put("SERVERConnectionURL", sUrl);
properties.put("SERVERUsername", sUserName);
properties.put("SERVERPassword", sPassword);
reader = Resources.getResourceAsReader(config);
sqlmapClient = SqlMapClientBuilder.buildSqlMapClient(reader,
properties);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
return sqlmapClient;
}
}