上一个任务/上一节 下一个任务/下一节
2.1.2 使用配置文件管理连接参数
使用 JDBC 访问数据库时,除了可以把数据库参数写在代码中,还可以使用配置文
件的形式保存数据库连接参数。使用配置文件方式访问数据库的优势在于,可以一次编
写,随时调用,并且一旦数据库发生变化,只需要修改配置文件即可,无需修改源代码。
1.配置文件的创建与设置
(1)配置文件的创建
在项目中创建配置文件的方式很简单,具体的操作步骤在这里不再赘述。需要强调
的是,配置文件的扩展名是 ".properties"。
(2)配置文件的设置
创建好配置文件后,就可以在配置文件中进行数据库参数的相关配置。在配置文件
中,采用 key-value 对 (键——值对) 的方式进行内容的组织。
示例 5
修改新闻系统数据库访问方式,通过配置文件来存储访问信息。
关键代码:
jdbc.driver_class=com.mysql.jdbc.Driver
jdbc.connection.url=jdbc:mysql://localhost:3306/news
jdbc.connection.username=root
jdbc.connection.password=root
提示
以 key-value 对方式进行配置文件的编写,等号左边表示键 (key),等号右边
表示值 (value)。
2.读取配置文件
由于将数据库参数保存在配置文件中,所以在进行数据库连接时就需要对配置文件
进行读取。在本书中,使用 Properties 对象的 load() 方法来实现配置文件的读取,这就
涉及使用流来实现文件的读操作。
通常在进行文件读取时,都会将方法置于一个工具类中。并在构造这个工具类的同
时来进行配置文件的读取。
示例 6
构建数据库访问的工具类,用于读取配置文件。
关键代码:
……//读取配置文件 (属性文件) 的工具类
public class ConfigManager{
private static ConfigManager configManager;
private static Properties properties;
//在构造工具类时,进行配置文件的读取
private ConfigManager(){
String configFile = "database.propeities";
properties= new Properties();
InputStream in = ConfigManager.class.getClassLoader().getResource AsStream (configFile);
try{
//读取配置文件
properties.load(in);
in.close();
}catch (IOException e){
e.printStackTrace();
}
}
//通过单例模式设置实列化的个数
public static ConfigManager getInstance(){
if(configManager==null){
configManager = new ConfigManager();
}
return configManager;
}
//通过 key 获取对应的 value
public String getString(String key){
return properties.getProperty(key);
}
}
在工具类编写完成后,就可以在程序中进行调用了,先通过读取配置文件,获取连
接数据库相关的参数信息,然后建立数据库连接,获取相关访问数据后,再实现对数据
库的操作。
示例 7
使用配置文件方式实现数据库访问。
关键代码:
public void getNewsList(){
Connection connection=null;
Statement stmt=null;
ResultSet rs=null;
//通过工具类读取配置文件相关信息
String driver = ConfigManager.getInstance().getString("jdbc.driver_class");
String url= ConfigManager.getInstance().getString("jdbc.connection.url");
String username = ConfigManager.getInstance().getString("jdbc.connection.username");
String password = ConfigManager.getInstance().getString("jdbc.connection.password");
try{
//(1)使用 Class.forName() 方法加载驱动
Class.forName(driver);
//(2) 获取数据库连接
connection DriverManager.getConnection(url,username,password);
//(3) 获得 Statement 对象,执行 SQL 语句
……
}
在示例 7 中,将读取新闻信息时的数据库访问方式修改成通过配置文件读取方式实
现,修改完毕后,运行程序依然可以实现数据的读取显示。