版权声明:@wrial https://blog.csdn.net/qq_42605968/article/details/85063694
今天来分享一下使用porperties配置文件和JDBC的联合使用
JDBC:
在我们平时连接数据库时,一般都是通过JDBC来进行连接,接下来是JDBC连接的步骤和代码演示。(大致步骤,需要运行的话加上自己的信息和所用的环境)
static String url = "jdbc:mysql://127.0.0.1:3306/new_schema?serverTimezone=UTC&useSSL=false";
static String user = "root";
static String password = "*******";
public static Connection con;
public static Connection init() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
以上是通过JDBC连接数据库,我连接的是Mysql,连接其他数据库也大致相同,就是要加载的驱动不同。
当然在最后也不要忘了关闭连接
public static void close() {
try {
if (con != null)
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
但是呢,你们会不会觉得像我刚刚所说的,如果要更还使用Oracle数据库,那是不是好要一个一个往过改正呢?这个问题怎样解决才是最好的呢?
当然,方法肯定是有的。利用配置文件来配置信息,在此,我将用porperties配置信息来实现JDBC连接数据库。
要使用porperties当然你也要知道它大致该怎么操作对吧,因此在这先大致说一下porperties的内容该怎么写,在porperties文件中,写数据就可以大致理解为键值对,一个key对应一个value。因为它读取的时候也是通过这个关系获取的。
porperties配置文件
driver="com.mysql.cj.jdbc.Driver";
url="jdbc:mysql://127.0.0.1:3306/new_schema?serverTimezone=UTC&useSSL=false";
user="root";
password="wrial.qq.com";
通过静态代码块加载
static {
try {
// 1.通过当前类获取类加载器
ClassLoader classLoader = JDBC_porper.class.getClassLoader();
// 2.通过类加载器的方法获得一个输入流
InputStream in = new BufferedInputStream(new FileInputStream("C:\\Users\\Administrator\\JavaMail\\src\\DB.porperties"));
// 3.创建一个properties对象(集合)
Properties props = new Properties();
// 4.加载输入流
props.load(in);
// 5.获取相关参数的值
driver = props.getProperty("driver");
url = props.getProperty("url");
user = props.getProperty("user");
password = props.getProperty("password");
} catch (IOException e) {
e.printStackTrace();
}
}
在控制台中测试结果
driver:"com.mysql.cj.jdbc.Driver";
user:"root";
password:"wrial.qq.com";
url:"jdbc:mysql://127.0.0.1:3306/new_schema?serverTimezone=UTC&useSSL=false";
Process finished with exit code 0
当然,把这些属性加到我们刚开始时候的连接JDBC的属性里,是不是就可以使用配置文件来传值了,如果要更换数据库的话,可以更换配置文件或者在文件上改来达到目的,使代码看起来一目了然。
今天的分享就到这里,是不是很简单呢。当然配置文件的功能也不止这一点,在合适的场景下都可以用得到。