开发者社区> 优惠码发放> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: Java之JDBC 通过加载properties配置文件连接数据库  通常情况下,我们通过JDBC连接数据库的时候,不会将数据库相关配置写死,因为到时候数据库一有改动,就要重新打包部署到服务器或者替换相关的.class文件,这样非常不灵活。
+关注继续查看

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 try {
36 Class.forName(driver);
37 connection = DriverManager.getConnection(url, username, password);
38 } catch (ClassNotFoundException e) {
39 e.printStackTrace();
40 } catch (SQLException e) {
41 e.printStackTrace();
42 }
43 }
44 }
复制代码
  

  下面是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文件。
原文地址https://www.cnblogs.com/ailanlan/p/11249428.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
全网首发:Java在LINUX上系统上加载OpenCV so库的范例代码
全网首发:Java在LINUX上系统上加载OpenCV so库的范例代码
0 0
JNI用C加载JDK产生JVM虚拟机,并运行JAVA类main函数(MACOS/LINUX/WINDOWS)
JNI用C加载JDK产生JVM虚拟机,并运行JAVA类main函数(MACOS/LINUX/WINDOWS)
0 0
JAVA加载一个目录下有依赖关系本地库的通用代码
JAVA加载一个目录下有依赖关系本地库的通用代码
0 0
【Java实战系列】如何扩展加载Jar包?|周末学习
【Java实战系列】如何扩展加载Jar包?|周末学习
0 0
使用JNI加载JAVA虚拟机
使用JNI加载JAVA虚拟机
0 0
108. 你真的知道 Java 类是如何被加载的吗?(二)
108. 你真的知道 Java 类是如何被加载的吗?(二)
0 0
108. 你真的知道 Java 类是如何被加载的吗?(一)
108. 你真的知道 Java 类是如何被加载的吗?(一)
0 0
Java Swing 实现loading进度条加载效果
这个可以用来做一些页面的加载进度条还是很不错的,起到美观的作用,一些代码内容也是根据别的大佬拿来修改完成。这是在idea里面运行的
0 0
浅析java中ClassLoader如何加载Class
浅析java中ClassLoader如何加载Class
0 0
+关注
优惠码发放
阿里云优惠码阿里云推荐券bieryun.com
文章
问答
文章排行榜
最热
最新
相关电子书
更多
JAVA 应用排查全景图
立即下载
Java工程师必读手册
立即下载
Java应用提速(速度与激情)
立即下载