通常情况下,我们通过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文件:

 driverClassName=oracle.jdbc.OracleDriver
url=jdbc:oracle:thin:@172.16.35.35:1521:ecard
username=ecard
password=ecard

  

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

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

最新文章

  1. java代码解压zip文件
  2. Code Rush插件
  3. ReLu(Rectified Linear Units)激活函数
  4. 一张图让你看懂各开源License[转]
  5. 项目分析 NGPcontext
  6. 【转】C# String.Format数字格式化输出各种转换{0:N2} {0:D2} {0:C2}...
  7. Smith Numbers - PC110706
  8. PetaPoco 快速上手
  9. HDU4508--完全背包
  10. 一个在 .NET 一线战斗了十年的 C# 程序员的内心独白
  11. [蓝桥] 基础练习 数列排序(java)
  12. Java 层序创建和遍历二叉树
  13. java基础-day12
  14. 0.1 Maven相关知识(项目开发基础)
  15. 无线通信中FEC 编码原理及评价
  16. Pycharm自动换行
  17. Android属性动画简单剖析
  18. JavaScript 闭包原理分析
  19. [MyEclipse]转:设置注释格式
  20. [置顶] 普通程序员如何入门AI

热门文章

  1. Python自动化测试 (八)unittest 单元测试
  2. Django高级编程之自定义Field实现多语言
  3. never下的easysql
  4. 《Spring Cloud》学习(一) 服务治理!
  5. Spring-Boot + MyBatis-Plus 踩坑记录
  6. Android 上传开源项目到 jcenter 实战踩坑之路
  7. vSphere Client克隆虚拟机
  8. BFS(五):八数码难题 (POJ 1077)
  9. (转)Java 8 中的 Streams API 详解
  10. 嵊州D1T3 睡美人航班