java操作properties文件及应用到JDBC

一、认识properties文件
java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties;
    1、properties文件是一个文本文件
    2、properties文件的语法有两种,一种是注释,一种属性配置。
       注    释:前面加上#号
       属性配置:以“键=值”的方式书写一个属性的配置信息。
    3、properties文件的一个属性配置信息值可以换行,但键不可以换行。值换行用“\”表示。
    4、properties的属性配置键值前后的空格在解析时候会被忽略。
    5、properties文件可以只有键而没有值。也可以仅有键和等号而没有值,但无论如何一个属性配置不能没有键。
二、解读java.util.Properties类
    1、Properties类的层次结构
       java.lang.Object
  java.util.Dictionary<K,V>
      java.util.Hashtable<Object,Object>
          java.util.Properties
 
从层次机构看,Properties类实现了Map接口,因为HashTable实现了Map接口,因此Properties类本质上是一种简单的Map容器。实际上,Properties类本身表示了对一种Map结构的操作。properties文件本身就表示了一个“键值对”的集合。因此,Properties类属于集合容器的家族,在使用前应该创建一个Properties的容器,实际上就是创建一个默认不带参数的Properties对象。以后通过别的方式给里面添加“键值对”。

    2、properties文件与Properties类的关系
通过properties文件可以填充Properties类,也可以通过xml文件来填充Properties类,还可以通过绝对路径方式加载Properties文件信息,也可以使用相对路径加载。
三、 操作properties件的java方法 
新建一个file.properties文件,内容为:
#这是使用UTF-8编码保存的
username=张三
mypassword=12345
test=123abc会乱码吗?
新建一个ResourceBundletest 类,内容为:
import java.util.ResourceBundle;

public class ResourceBundleTest {
	public static void main(String[] args){
		ResourceBundle rb = ResourceBundle.getBundle("dgltwy.com.cn.file");  //我的文件路径:"/dgltwy/com/cn/file.properties"
		String str = (String)rb.getObject("username");   
		try {
			str = new String(str.getBytes("ISO8859-1"), "UTF-8");  //将username进行了编码转换
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println(str);
		System.out.println(rb.getObject("mypassword"));
		System.out.println(rb.getObject("test"));    //没有进行编码转换的中文会乱码
	}

}
输出结果:
张三
12345
123abc?????±?????????

四、应用到JDBC连接
利用静态快,方便数据库连接的更改(即项目发布后只需更改properties文件)
1.编写数据库连接类DataBaseManage,代码如下:
package dgltwy.com.cn.business.comm;

import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ResourceBundle;

public class DataBaseManage {
	Connection conn=null;
//	String driver = "oracle.jdbc.driver.OracleDriver";
//	String url="jdbc:oracle:thin:@localhost:1521:orcl";
//	String username = "yylg";
//	String password = "12345";
	private static String driver = null;
	private static String url= null;
	private static String username = null;
	private static String password = null;
	
	static {
		ResourceBundle rb = ResourceBundle.getBundle("dbDate");	//文件所在路径,不用写后缀,我的是在"/src/dbDate.properties";
		driver = String.valueOf(rb.getObject("driver"));
		url = String.valueOf(rb.getObject("url"));
		username = String.valueOf(rb.getObject("username"));
		password = String.valueOf(rb.getObject("password"));
		System.out.println("用户和密码 : "+username+" ; "+password);
	}
	
	public Connection getConnection() throws Exception{
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url, username, password);
			System.out.println("数据库连接成功..");
		} catch (ClassNotFoundException ex) {
			System.out.println("数据库连接失败!");
			ex.printStackTrace();
			throw ex;
		}
		return conn;
	}
	
	public static void main(String []args) throws Exception{
		Connection conn = new DataBaseManage().getConnection();
		System.out.println("conn = "+conn);
	}
}

编写 properties文件dbDate. properties,内容为:
#配置JDBC的参数(有中文的话注意编码问题)
driver = oracle.jdbc.driver.OracleDriver
url = jdbc:oracle:thin:@localhost:1521:orcl
username = yylg
password =12345
执行类文件得到结果:
用户和密码 : yylg ; 12345
数据库连接成功..
conn = oracle.jdbc.driver.T4CConnection@10c832d2
参考博客:http://trans.blog.51cto.com/503170/110227/ 及:http://www.cnblogs.com/panjun-Donet/archive/2009/07/17/1525597.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值