代码改变世界

Java读取数据库配置文件之通用写法

2013-01-08 16:15  hduhans  阅读(982)  评论(0)    收藏  举报

1.src下新建DB.properties

#driver
com.pccpa.chat.jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

#sqlserver connection
com.pccpa.chat.jdbc.url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=asdb
com.pccpa.chat.jdbc.username=sa
com.pccpa.chat.jdbc.password=123456

2.新建读取配置文件类ConfigUtil.java

package com.panchina.core;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ConfigUtil {
    private static Properties props = new Properties();

    static {
        InputStream in = ConfigUtil.class.getClassLoader().getResourceAsStream("DB.properties");
        try {
            props.load(in);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static String getValue(String key) {
        return props.getProperty(key);
    }
    
    /*public static void main(String[] args) {
        System.out.println(ConfigUtil.getValue("com.pccpa.chat.jdbc.driverClassName"));
    }*/
}

3.新建创建连接类ConnectionUtil.java

package com.panchina.core;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionUtil {
    private static String driver;
    private static String url;
    private static String user;
    private static String pwd;
    
    static {
        driver = ConfigUtil.getValue("com.pccpa.chat.jdbc.driverClassName");
        url = ConfigUtil.getValue("com.pccpa.chat.jdbc.url");
        user = ConfigUtil.getValue("com.pccpa.chat.jdbc.username");
        pwd = ConfigUtil.getValue("com.pccpa.chat.jdbc.password");
    }
    
    public static Connection getConnection() throws Exception {
        Connection conn = null;
        try {
            Class.forName(driver).newInstance(); 
            conn = DriverManager.getConnection(url,user,pwd);
        } catch (Exception e) {
            e.printStackTrace();
            throw e;
        }
        return conn;
    }
    
    public static void close(Connection conn) {
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

 4.使用范例

Connection conn = null;
try {  
    String sql = "select top 10 * from k_user ";
    conn = ConnectionUtil.getConnection();
    PreparedStatement stmt = conn.prepareStatement(sql);
    ResultSet rst= stmt.executeQuery();
    while(rst.next()){
        System.out.println(rst.getString("Name"));
    }
    
} catch (Exception e) {  
    e.printStackTrace();  
} finally {
    ConnectionUtil.close(conn);
}