Java之JDBC 通过加载properties配置文件连接数据库

 通常情况下,我们通过JDBC连接数据库的时候,不会将数据库相关配置写死,因为到时候数据库一有改动,就要重新打包部署到服务器或者替换相关的.class文件,这样非常不灵活。因此,咱们一般会通过读取配置文件的方式来加载数据库相关配置,这样到时候只改动配置文件就可以啦,非常的方便。

    直接上代码,下面是java文件:

public class SyncDataFn {

    private static String driver;
    private static String url;
    private static String username;
    private static String password;

    static {
        try {
            // 1.通过当前类获取类加载器
            ClassLoader classLoader = SyncDataFn.class.getClassLoader();
            // 2.通过类加载器的方法获得一个输入流
            InputStream in = classLoader.getResourceAsStream("../config/jdbc-interface.properties");
            // 3.创建一个properties对象
            Properties props = new Properties();
            // 4.加载输入流
            props.load(in);
            // 5.获取相关参数的值
            driver = props.getProperty("driverClassName");
            url = props.getProperty("url");
            username = props.getProperty("username");
            password = props.getProperty("password");
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public int jxJson() throws Exception {
        // 创建Statement用于执行SQL语句
        Statement stmt = null;
        String strSQL = "";
        Connection connection = null;

        //定义同步数据的条数
        int count = 0;

        try {
            Class.forName(driver);
            connection = DriverManager.getConnection(url, username, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        // 先关闭Statement
        if (stmt != null)
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        // 后关闭Connection
        if (connection != null)
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        log.info("当前时间===" + new Date());
        log.info("同步结束");
        log.info("共更新了"+ count + "条数据");
        return count;
    }
}

下面是properties文件:

 

1 driverClassName=oracle.jdbc.OracleDriver
2 url=jdbc:oracle:thin:@172.16.35.35:1521:ecard
3 username=ecard
4 password=ecard

  

 其中有个坑是调用classLoader.getResourceAsStream()获取properties文件路径的时候,刚开始怎么也获取不到,后来问了度娘才知道,他的起始路径是基于.class的。

  总结:如果你想获得配置文件,你得从最终生成的.class文件为着手点,不要以.java文件的路径为出发点,因为真正使用的就是.class文件。

posted @ 2020-07-21 15:29  爱懒懒的小星星  阅读(48)  评论(0)    收藏  举报