论坛首页 Java企业应用论坛

通过Properties类读取配置文件封装Connection

浏览 5718 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (13) :: 隐藏帖 (2)
作者 正文
   发表时间:2009-10-19   最后修改:2009-10-19
一般在开发的时候,数据库的连接信息通常写在配置文件中,包括xml文件或者properties文件。而不是在每次连接的时候都要读取配置获得connection,封装的方法有许多,这里只介绍一种,通过Properties类对配置文件进行操作,从而达到封装connection的目的。

好了,首先properties文件中是Oracle数据库的连接信息,具体如下
driver oracle.jdbc.OracleDriver
url jdbc:oracle:thin:@localhost:1521:orcl
user scott
password tiger


好了,接下来我写一个工厂类来读取配置文件,从而对connection进行封装。具体代码如下
package org.whatisjava.project1.sevice.impl;

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

public class ConnectionFactory {
	private static String url;
	private static String driver;
	private static String user;
	private static String password;

	static {
		try {
			Properties props = new Properties();

			props.load(ConnectionFactory.class.getClassLoader()
					.getResourceAsStream("db.properties")); //得到当前类的类加载器,以流的方式读取配置文件

			driver = props.getProperty("driver");
			url = props.getProperty("url");
			user = props.getProperty("user");
			password = props.getProperty("password");

			Class.forName(driver); //加载驱动程序

		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	//返回Connection
	public static Connection getConnection() throws Exception{
		try {
			Connection con = DriverManager.getConnection(url, user, password);
			return con;
		} catch (Exception e) {
			return null;
		}

	}
}



返回connection后,就可以在dao层对数据库进行CRUD操作了。
   发表时间:2009-10-19  
很认真的看了下 不是挖坟
0 请登录后投票
   发表时间:2009-10-20  
storm0912 写道
数据库连接最好通过应用服务器来配置。然后通过jndi来访问。这样既可以避免暴露连接信息,又可以将连接池,事务等任务交给应用服务器管理。

通过框架配置或者容器封装谁都清楚,我写这个只是在纯用jdbc,不用框架的时候来进行简单封装的一种方法,并没有上升到企业开发的高度。
1 请登录后投票
   发表时间:2009-10-22  
public static Connection getConnection() throws Exception{  
        try {  
            Connection con = DriverManager.getConnection(url, user, password);  
            return con;  
        } catch (Exception e) {  
            return null;  
        }  
 
    } 

楼主在方法里把exception catch掉了,为什么还在方法的声明上抛出异常呢?
0 请登录后投票
   发表时间:2009-10-22  
storm0912 写道
数据库连接最好通过应用服务器来配置。然后通过jndi来访问。这样既可以避免暴露连接信息,又可以将连接池,事务等任务交给应用服务器管理。


您说的是 数据服务器 与 应用分离?

还是  数据服务器 与 应用合在一台机器上,通过jndi访问?
0 请登录后投票
   发表时间:2009-10-22  
treblesoftware 写道
storm0912 写道
数据库连接最好通过应用服务器来配置。然后通过jndi来访问。这样既可以避免暴露连接信息,又可以将连接池,事务等任务交给应用服务器管理。


您说的是 数据服务器 与 应用分离?

还是  数据服务器 与 应用合在一台机器上,通过jndi访问?


在不在同一台机器上跟通过jndi来访问有关系么?
0 请登录后投票
   发表时间:2009-10-22  
谢谢,又复习了一下Properties类的使用
0 请登录后投票
   发表时间:2009-10-22  
Properties的功能不只是你说的这点吧,好像大多数人都拿别人想法在做来做去的,大家都知道什么Dao.及dao的连接方式! 有时候说多了没意思啊,
0 请登录后投票
   发表时间:2009-10-22  
elvishehai 写道
Properties的功能不只是你说的这点吧,好像大多数人都拿别人想法在做来做去的,大家都知道什么Dao.及dao的连接方式! 有时候说多了没意思啊,

恩,我就是拿你的想法来做东西的。
0 请登录后投票
   发表时间:2009-10-22  
love182055084 写道
treblesoftware 写道
storm0912 写道
数据库连接最好通过应用服务器来配置。然后通过jndi来访问。这样既可以避免暴露连接信息,又可以将连接池,事务等任务交给应用服务器管理。


您说的是 数据服务器 与 应用分离?

还是  数据服务器 与 应用合在一台机器上,通过jndi访问?


在不在同一台机器上跟通过jndi来访问有关系么?


通过网络通信不能不记网络造成的性能下降。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics