com.ms.commons.db.jdbc.DataSource.java Source code

Java tutorial

Introduction

Here is the source code for com.ms.commons.db.jdbc.DataSource.java

Source

/*
 * 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, "******");
        }
    }
}