📄 dbutil.java
字号:
/****************************************************************************
* Package : com.ecSolutions.ecAppServer.util
* File : DbUtil.java
* Create Date : 2007-7-20
* Author : Steven Chen
*
* Copyright(C) 2006 ecSolutions(shanghai) Co.,Limited.All Rights Reserved.
*
***************************************************************************/
package com.ecSolutions.ecAppServer.util;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Hashtable;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.log4j.Logger;
import com.ecSolutions.ecAppServer.Configuration;
import com.ecSolutions.ecAppServer.ecAppServerConfigException;
public class DbUtil {
private static DbUtil instance = null;
private static byte[] encryptKey = Constants.ENCRYPTKEY;
private static DataSource ds = null;
private static Logger log = Logger.getLogger("DbUtil");
/*
public static synchronized DbUtil getInstance() {
if (instance == null) {
instance = new DbUtil();
}
return instance;
}
*/
public DbUtil() {
//setupDataSource();
}
private static DataSource setupDataSource(String driver, String connectURI,String username,
String password, int initialSize, int maxActive, int maxIdle, int minIdle,int maxWait) {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(driver);
ds.setUsername(username);
ds.setPassword(password);
ds.setUrl(connectURI);
ds.setInitialSize(initialSize);
ds.setMaxActive(maxActive);
ds.setMaxIdle(maxIdle);
ds.setMinIdle(minIdle);
ds.setMaxWait(maxWait);
return ds;
}
public static DataSource setupDataSource(Configuration config ) throws ecAppServerConfigException {
if (ds == null){
String driver = config.getString("jdbc.driver","oracle.jdbc.driver.OracleDriver");
String url = config.getString("jdbc.url");
String user = config.getString("jdbc.user");
//get encrypted password using 3DES arithmetic
String passwd = config.getString("jdbc.password");
//decrypt it to plain pasword
/*
byte[] decrytedPasswd = null ;
try {
byte[] a = new sun.misc.BASE64Decoder().decodeBuffer(passwd);
decrytedPasswd = CryptUtil.decrypt(a,encryptKey);
} catch (Exception e) {
log.error(e.toString());
e.printStackTrace();
throw new ecAppServerConfigException(e);
}
*/
//passwd = Base64.bytesToBase64(decrytedPasswd).toString();
//passwd = decrytedPasswd.toString();
int initSize = config.getInt("pool.initSize",5);
int maxActive = config.getInt("pool.maxActive",10);
int maxIdle = config.getInt("pool.maxIdle",3);
int minIdle = config.getInt("pool.minIdle",2);
int maxWait = config.getInt("pool.maxWait",10000);
ds = setupDataSource(driver,url,user,passwd,initSize,maxActive,maxIdle,minIdle,maxWait);
}
return ds;
}
public static void printDataSourceStats(DataSource ds) throws SQLException {
BasicDataSource bds = (BasicDataSource) ds;
log.debug("NumActive: " + bds.getNumActive());
log.debug("NumIdle: " + bds.getNumIdle());
}
public static void shutdownDataSource(DataSource ds) throws SQLException {
BasicDataSource bds = (BasicDataSource) ds;
bds.close();
}
public static Connection getConnection() throws SQLException {
Connection conn = ds.getConnection();
return conn;
}
public String toChinese(String s) {
try {
if (s == null) {
return null;
} else {
s = new String(s.getBytes("ISO8859_1"), "GBK");
return s;
}
} catch (Exception exception) {
return null;
}
}
public String toDB(String s) {
try {
if (s == null) {
return null;
} else {
s = new String(s.getBytes("GBK"), "ISO8859_1");
return s;
}
} catch (Exception exception) {
return null;
}
}
public static void destroy() throws SQLException {
BasicDataSource bds = (BasicDataSource) ds;
bds.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -