zoukankan      html  css  js  c++  java
  • Java之JDBC 通过加载properties配置文件连接数据库

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

      

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

     1 public class SyncDataFn {
     2     
     3     private static String driver;
     4     private static String url;
     5     private static String username;
     6     private static String password;
     7     
     8     static {
     9         try {
    10             // 1.通过当前类获取类加载器
    11             ClassLoader classLoader = SyncDataFn.class.getClassLoader();
    12             // 2.通过类加载器的方法获得一个输入流
    13             InputStream in = classLoader.getResourceAsStream("../config/jdbc-interface.properties");
    14             // 3.创建一个properties对象
    15             Properties props = new Properties();
    16             // 4.加载输入流
    17             props.load(in);
    18             // 5.获取相关参数的值
    19             driver = props.getProperty("driverClassName");
    20             url = props.getProperty("url");
    21             username = props.getProperty("username");
    22             password = props.getProperty("password");
    23         } catch (IOException e) {
    24             e.printStackTrace();
    25         }
    26  
    27     }
    28     
    29     public int jxJson() throws Exception {
    30         // 创建Statement用于执行SQL语句
    31         Statement stmt = null;
    32         String strSQL = "";
    33         Connection connection = null;
    34         
    35         //定义同步数据的条数
    36         int count = 0;
    37         
    38         try {
    39             Class.forName(driver);
    40             connection = DriverManager.getConnection(url, username, password);
    41         } catch (ClassNotFoundException e) {
    42             e.printStackTrace();
    43         } catch (SQLException e) {
    44             e.printStackTrace();
    45         }
    46         
    47         // 先关闭Statement
    48         if (stmt != null)
    49             try {
    50                 stmt.close();
    51             } catch (SQLException e) {
    52                 e.printStackTrace();
    53             }
    54         // 后关闭Connection
    55         if (connection != null)
    56             try {
    57                 connection.close();
    58             } catch (SQLException e) {
    59                 e.printStackTrace();
    60             }
    61         log.info("当前时间===" + new Date());
    62         log.info("同步结束");
    63         log.info("共更新了"+ count + "条数据");
    64         return count;
    65     }
    66 }

      下面是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文件。

     

  • 相关阅读:
    jQuery基础开发详解 重要
    Jquery插件form和cookie
    javascript keycode大全
    用户体验一些链接
    SQL导入Excel数据时,数字中混有字符将导致数据丢失的解决办法
    列出本机所有固定驱动器和可移动驱动器
    ADOQUERY,CLIENTDATASET,ADOSTOREPROC执行存储过程【多种方法】
    如何发布 JSON 项目?[转橙子]
    ADOQUERY,CLIENTDATASET,ADOSTOREPROC执行存储过程【多种方法】
    ADOQUERY,CLIENTDATASET,ADOSTOREPROC执行存储过程【多种方法】
  • 原文地址:https://www.cnblogs.com/ailanlan/p/11249428.html
Copyright © 2011-2022 走看看