Java tutorial
/* * Copyright 2011-2016 ZXC.com All right reserved. This software is the confidential and proprietary information of * ZXC.com ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only in * accordance with the terms of the license agreement you entered into with ZXC.com. */ package com.ms.commons.db.jdbc; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import org.apache.commons.dbcp.BasicDataSource; import com.ms.commons.log.ExpandLogger; import com.ms.commons.log.LoggerFactoryWrapper; /** * ??? * * @author zxc Apr 12, 2013 5:04:49 PM */ public class DataSource extends BasicDataSource { public static ExpandLogger logger = LoggerFactoryWrapper.getLogger(DataSource.class); // System propertieskey public static final String KEY_DATA_SOURCE_PROPERTIES = "msun.datasource.properties"; // ??? public static final String DATA_SOURCE_PROPERTIES = "datasource.properties"; private static final String JDBC_DRIVER = "jdbc.driver"; private static final String DB_JDBC_URL = "db.jdbc.url"; private static final String DB_JDBC_USER = "db.jdbc.user"; private static final String DB_JDBC_PWD = "db.jdbc.pwd"; // ? private String dbtype = ""; public void setDbtype(String dbtype) { this.dbtype = dbtype; } public void init() { String filename; String property = System.getProperty(KEY_DATA_SOURCE_PROPERTIES); if (property == null || property.trim().length() == 0) { String userdir = System.getProperty("user.home"); filename = userdir + File.separator + DATA_SOURCE_PROPERTIES; } else { filename = property; } logger.info("A ??:" + filename); logger.error("------>" + filename); File file = new File(filename); if (!file.exists()) { logger.error("B ??: {} ?", filename); throw new DataSourceException("C ?? " + filename + " ?"); } Properties prop = new Properties(); try { prop.load(new FileInputStream(file)); } catch (FileNotFoundException e) { logger.error("D ?? " + filename + " ?", e); e.printStackTrace(); throw new DataSourceException("E ?? " + filename + " ?", e); } catch (IOException e) { logger.error("F ?? " + filename + " ?", e); e.printStackTrace(); throw new DataSourceException("G ?? " + filename + " ?", e); } // driver String jdbc_driver = JDBC_DRIVER + dbtype; String jdbc = prop.getProperty(jdbc_driver); if (jdbc == null || jdbc.trim().length() == 0) { logger.error("H ? {} ?", jdbc_driver); throw new DataSourceException("I ??? " + jdbc_driver + " ?"); } else { setDriverClassName(jdbc); logger.info("J ? {}?{}", jdbc_driver, jdbc); } // url String db_jdbc_url = DB_JDBC_URL + dbtype; String url = prop.getProperty(db_jdbc_url); if (url == null || url.trim().length() == 0) { logger.error("K ? {} ?", db_jdbc_url); throw new DataSourceException("L ??? " + db_jdbc_url + " ?"); } else { setUrl(url); logger.info("M ? {}?{}", db_jdbc_url, url); } // user String db_jdbc_user = DB_JDBC_USER + dbtype; String user = prop.getProperty(db_jdbc_user); if (user == null || user.trim().length() == 0) { logger.error("N ? {} ?", db_jdbc_user); throw new DataSourceException("O ??? " + db_jdbc_user + " ?"); } else { setUsername(user); logger.info("P ? {}?{}", db_jdbc_user, user); } // password String db_jdbc_password = DB_JDBC_PWD + dbtype; String password = prop.getProperty(db_jdbc_password); if (password == null || password.trim().length() == 0) { logger.error("Q ? {} ?", db_jdbc_password); throw new DataSourceException("R ??? " + db_jdbc_password + " ?"); } else { setPassword(password); logger.info("S ? {}?{}", db_jdbc_password, "******"); } } }