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文件。
行动-岸上的人永远不会游泳

浙公网安备 33010602011771号