package com.jdbc.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
public class JdbcUtil {
private static Logger LOG = LogManager.getLogger(JdbcUtil.class);
private static String driver = null;
private static String uri = null;
private static String username = null;
private static String password = null;
private static DataSource dataSource = null;
static {
Configuration conf = Configuration.getInstance();
driver = conf.getString("db.driver", "com.mysql.jdbc.Driver");
uri = conf.getString("db.uri", "");
username = conf.getString("db.username", "");
password = conf.getString("db.password", "");
getDataSource();
}
private static void getDataSource() {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(driver);
ds.setUsername(username);
ds.setPassword(password);
ds.setUrl(uri);
ds.setMaxActive(30);
ds.setMaxIdle(100);
ds.setMaxWait(1000);
dataSource = ds;
}
public static void releaseDataSource(DataSource ds){
BasicDataSource bds = (BasicDataSource) ds;
if(bds != null)
try{
bds.close();
}catch(Exception e){
LOG.error("releaseDataSource :" + e);
}
}
public static Connection getConnection(){
try{
Connection conn = dataSource.getConnection();
return conn;
}catch(Exception e){
LOG.error("get connection :" + e);
}
return null;
}
public static void close(Connection c, Statement s, ResultSet r) {
try {
if (r != null)
r.close();
if (s != null)
s.close();
if (c != null)
c.close();
} catch (Exception e) {
LOG.error("close connection:" + e);
}
}
public static void close(Connection c, PreparedStatement s, ResultSet r) {
try {
if (r != null)
r.close();
if (s != null)
s.close();
if (c != null)
c.close();
} catch (Exception e) {
LOG.error("close connection :" + e);
}
}
public static void main(String args[]) throws Exception{
Connection conn = getConnection();
Statement s = conn.createStatement();
ResultSet r = s.executeQuery("select cid from company");
while (r.next()) {
//System.out.println(r.getString("cid"));
LOG.info(r.getString("cid"));
}
close(conn,s,r);
}
}
package com.jdbc.util;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
public class Configuration extends Properties {
private static final long serialVersionUID = 5044046358027224342L;
private static Configuration instance = null;
public static Configuration getInstance(){
if(instance == null){
synchronized (Configuration.class) {
if(instance == null){
instance = new Configuration();
}
}
}
return instance;
}
public String getProperty(String key, String defaultValue) {
String val = getProperty(key);
return (val == null || val.isEmpty()) ? defaultValue : val;
}
public String getString(String name, String defaultValue) {
return this.getProperty(name, defaultValue);
}
public int getInt(String name, int defaultValue) {
String val = this.getProperty(name);
return (val == null || val.isEmpty()) ? defaultValue : Integer.parseInt(val);
}
public long getLong(String name, long defaultValue) {
String val = this.getProperty(name);
return (val == null || val.isEmpty()) ? defaultValue : Integer.parseInt(val);
}
public float getFloat(String name, float defaultValue) {
String val = this.getProperty(name);
return (val == null || val.isEmpty()) ? defaultValue : Float.parseFloat(val);
}
public double getDouble(String name, double defaultValue) {
String val = this.getProperty(name);
return (val == null || val.isEmpty()) ? defaultValue : Double.parseDouble(val);
}
public byte getByte(String name, byte defaultValue) {
String val = this.getProperty(name);
return (val == null || val.isEmpty()) ? defaultValue : Byte.parseByte(val);
}
public Configuration() {
InputStream in = ClassLoader.getSystemClassLoader().getResourceAsStream("config.xml");
try {
this.loadFromXML(in);
in.close();
} catch (Exception e) {
LogUtil.e(Configuration.class, e);
}
}
public Configuration(String path) throws Exception {
InputStream in = new FileInputStream(path+"config.xml");
try {
this.loadFromXML(in);
in.close();
} catch (Exception e) {
LogUtil.e(Configuration.class, e);
}
}
public static void main(String[] args) throws Exception {
String path = Configuration.getInstance().getString("conf.dir", "/home/html/webim/src/lib/");
while(true){
Configuration config = new Configuration(path);
System.out.println(config.getString("proxy.downstream.list", ""));
Thread.sleep(3000);
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="db.driver">com.mysql.jdbc.Driver</entry>
<entry key="db.uri">jdbc:mysql://192.168.0.243:3306/webim?characterEncoding=UTF-8&autoReconnect=true</entry>
<entry key="db.username">root</entry>
<entry key="db.password">123456</entry>
</properties>
#设置日志级别
log4j.rootLogger = E,D,C
#输出到控制台
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.out
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
#输出到日志文件【调试信息】
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File=D:/home/java/text/logs/debug.log
log4j.appender.D.Append=true
log4j.appender.D.Threshold=DEBUG
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t:%r] - [%p] %m%n
#输出到日志文件【错误信息】
log4j.appender.E=org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File=D:/home/java/text/logs/error.log
log4j.appender.E.Append=true
log4j.appender.E.Threshold=ERROR
log4j.appender.E.layout=org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t:%r] - [%p] %m%n %x - %m%n
## 屏蔽其他包(框架)的输出日志
log4j.logger.io.netty=OFF