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文件:
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文件。
Java之JDBC 通过加载properties配置文件连接数据库的更多相关文章
- Java加载Properties配置文件工具类
		
Java加载Properties配置文件工具类 import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; ...
 - 加载Properties配置文件
		
/** * 加载Properties配置文件 * * @author ZhangHaiNing * @param file 要读取的文件 * @return */ public static Prop ...
 - jdbc基础 (二) 通过properties配置文件连接数据库
		
csdn博文地址:jdbc基础 (二) 通过properties配置文件连接数据库 上一篇描述了对mysql数据库的简单操作,下面来看一下开发中应该如何灵活应用. 因为jdbc对数据库的驱动加载.连接 ...
 - 使用Spring加载properties配置文件.md
		
背景 类似于datasource.properties之类的配置文件,最初通过Java的Properties类进行处理.这种方式有许多弊端,如每次都需要读取配置文件:若将Properties作为成员变 ...
 - Spring加载Properties配置文件的三种方式
		
一.通过 context:property-placeholder 标签实现配置文件加载 1) 用法: 1.在spring.xml配置文件中添加标签 <context:property-plac ...
 - spring加载properties配置文件
		
public static void main(String[] args){ String path="E:/workspace/bocMarketData/src/config/P ...
 - JAVA加载Properties配置资源文件
		
JAVA加载Properties配置资源文件 制作人:全心全意 配置文件(资源文件):以properties作为拓展名的文件 Java代码是如何加载properties文件的? 必须使用Propert ...
 - Java开发学习(八)----IOC/DI配置管理第三方bean、加载properties文件
		
前面的博客都是基于我们自己写的类,现在如果有需求让我们去管理第三方jar包中的类,该如何管理? 一.案例:数据源对象管理 本次案例将使用数据源Druid和C3P0来配置学习下. 1.1 环境准备 学习 ...
 - Spring加载properties文件的两种方式
		
在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可, ...
 
随机推荐
- 遗漏的SQL语句
			
一.简单查询 1.限制返回行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之 ...
 - 【搜索引擎】Solr Suggester 实现全文检索功能-分词和和自动提示
			
功能需求 全文检索搜索引擎都会有这样一个功能:输入一个字符便自动提示出可选的短语: 要实现这种功能,可以利用solr的SuggestComponent,SuggestComponent这种方法利用Lu ...
 - asp.net core 系列之Response caching 之 Distributed caching(3)
			
这篇文章讲解分布式缓存,即 Distributed caching in ASP.NET Core Distributed caching in ASP.NET Core 分布式缓存是可以在多个应用服 ...
 - 全自动Landsat影像温度反演软件开发
			
许久没有更新遥感类软件开发了,都有点生疏了,这一次我带来了一个老的算法,新的东西, 为什么这么说呢,我们知道Landat8.Landsat5等影像,单个影像去做温度反演,并没有什么太大的难度, 但是呢 ...
 - Storm 学习之路(二)——  Storm核心概念详解
			
一.Storm核心概念 1.1 Topologies(拓扑) 一个完整的Storm流处理程序被称为Storm topology(拓扑).它是一个是由Spouts 和Bolts通过Stream连接起来的 ...
 - Kafka 学习之路(四)——  Kafka消费者详解
			
一.消费者和消费者群组 在Kafka中,消费者通常是消费者群组的一部分,多个消费者群组共同读取同一个主题时,彼此之间互不影响.Kafka之所以要引入消费者群组这个概念是因为Kafka消费者经常会做一些 ...
 - java基础知识总结(二)
			
Java中的代码块 java中的代码块是用{}括起来的代码,进行一些功能的限定 静态代码块:在类第一次被初始化的是后执行,负责一些类的初始化操作,仅仅只执行一次 构造代码块:顾名思义,辅助构造器进行初 ...
 - 基于STM32之UART串口通信协议(二)发送
			
一.前言 1.简介 在上一篇UART详解中,已经有了关于UART的详细介绍了,也有关于如何使用STM32CubeMX来配置UART的操作了,而在该篇博客,主要会讲解一下如何实现UART串口的发送功能. ...
 - Rstudio调用plot()函数时,出现错误的处理方法
			
按照书上的例子敲出代码后,发现Rstudio无法识别C盘user文件夹下的中文用户名.如下图所示: 按照网上的做法,尝试修改计算机user下的用户名,没修改成功. 另一种做法是在plot()函数前面加 ...
 - Ceph原理动画演示
			
动图生动刻画Ceph的基本原理之集群搭建及数据写入流程:)