在实际开发中,当我们需要读取用户的帐户和密码的时候,客户是不希望我们能够看到这个具体的账户和密码的,那么这个时候我们就要应用到属性配置文件。下面给大家说一下在JDBC中应用属性配置文件:将数据库的账户密码等信息放到属性配置文件中,这样既可以加强安全性,又可以提高程序的健壮性。
首先我们要在原有的工程目录下新建一个文件,文件的后缀名为properties.文件中的内容就是我们要自己添加的数据库信息,如下图所示:
其中的name,driver等值都是自己填写的,可以选择右边的Add进行添加,添加自己所需要的值即可,在这里我为了节省时间,所以将驱动driver也添加进来,这样进行注册驱动的时候更加简单。
编写完成properties文件后,下面要进行程序的编写,在这里我只说下怎么读取刚才创建的属性配置文件获取信息,别的连接操作和前文中的JDBC编程总结中的一样。代码如下:
FileReader reader=new FileReader("db.properties");//读文件
Properties pro=new Properties();
pro.load(reader);//将文件中的内容读到pro中
reader.close();
String driver=pro.getProperty("driver");//提取信息
String url=pro.getProperty("url");
String user=pro.getProperty("user");
String password=pro.getProperty("password");
上面的程序执行完毕后便可以进行数据库饿连接,如下程序所示
package com.bjpowernode.jdbc;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JDBCTest03 {
public static void main(String[] args)throws Exception {
//读取属性配置文件,获取配置信息
FileReader reader=new FileReader("db.properties");
Properties pro=new Properties();
pro.load(reader);
reader.close();
String driver=pro.getProperty("driver");
String url=pro.getProperty("url");
String user=pro.getProperty("user");
String password=pro.getProperty("password");
//--------------------操作数据库中的数据-------------
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try{
//1注册驱动
Class.forName(driver);
//2获取连接
conn=DriverManager.getConnection(url,user,password);
//3获取操作对象
stmt=conn.createStatement();
//4执行SQL语句
String sql="select id,name from t_user";
//5处理查询结果
rs=stmt.executeQuery(sql);
while(rs.next()){
int id=rs.getInt(1);
String name=rs.getString(2);
System.out.println("id="+id+"name="+name);
}
}catch(Exception e){
e.printStackTrace();
} finally {
if(rs!=null)
{try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
if(stmt!=null)
{try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
if(conn!=null)
{try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
}
}
}
如果连接部分有什么不懂的可以看我的前一篇文章关于JDBC连接的总结。