JDBC基础学习笔记_05_jdbc的程序优化_单立Connection并编写调用配置文件

时间:2021-06-03 11:56:11

一.配置文件properties的编写。

properties文件是一种以键值对存在的文件,类似于unity开发中的playerprefs,将数据以键值对存储,方便我们在程序中调用。

我们新建一个file,将后缀名命名为   .properties。

JDBC基础学习笔记_05_jdbc的程序优化_单立Connection并编写调用配置文件

点击add添加如下键值对:


JDBC基础学习笔记_05_jdbc的程序优化_单立Connection并编写调用配置文件

这样我们可以通过Propertie类来调用键值对。如何调用看下面程序。

二.新建一个类,放单独的一个包里面。代码如下:

package com.langzimingjian.utils;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;

public class ConnectionFactory {

private static String driver;
private static String bdurl;
private static String user;
private static String password;
private Connection connection = null;

/*單利*/
private static ConnectionFactory FACTORY = null;
//構造私有
private ConnectionFactory(){}
public static ConnectionFactory getInstance(){
if(FACTORY == null){
FACTORY = new ConnectionFactory();
}
return FACTORY;
}
static {
//存取配置文件中鍵值對的類
Properties properties = new Properties();
try {
//獲取當前類的類加載器,然後用getResourceAsStream讀取屬性文件中的內容
InputStream inputStream = ConnectionFactory.class.getClassLoader().getResourceAsStream("dbconfig.properties");
properties.load(inputStream);
} catch (Exception e) {
// TODO: handle exception
System.out.println("==============配置文件讀取錯誤=============");
}
driver = properties.getProperty("driver");
bdurl = properties.getProperty("bdurl");
user = properties.getProperty("user");
password = properties.getProperty("password");
}




public Connection makeConnection(){
try {
Class.forName(driver);
connection = DriverManager.getConnection(bdurl,user,password);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return connection;
}
}

注意,static语句块作用就是初始化这个类的成员变量。

编写一个测试里诶

package com.langzimingjian.test;

import java.sql.Connection;

import com.langzimingjian.utils.ConnectionFactory;

public class ConnectionFactoryTest {

/**
* @param args
*/
public static void main(String[] args){
try {
ConnectionFactory cf = ConnectionFactory.getInstance();
Connection connection = cf.makeConnection();
System.out.println(connection.getAutoCommit());//提交模式
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}

}

}
输出结果为true。证明连接成功。

这份代码的主要作用: 实现Connection的单利,实现对配置文件的调用,成功连接Connection。

下一篇会进行与DTO相关的编写,适用于大规模的对象传输。