posts - 2, comments - 27, trackbacks - 0, articles - 60
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

将数据源的连接配置改为从配置文件读取

Posted on 2009-10-23 00:14 ZhouFeng 阅读(3103) 评论(0)  编辑  收藏 所属分类: 原创Web开发
最近因一个项目需要迁移到另一个服务器上,而迁移的目标服务器是公用的服务器,需要将原有的数据源配置改为从自定义的配置文件读取,服务器都是用的Tomcat,以前的项目是在Tomcat里配置数据源,然后在程序中获取数据源里的连接,而新的服务器只提供了一个上传JSP文件的FTP方式,这种方式是没办法修改Tomcat配置文件配置数据源的,也就只好修改程序,将数据连接的部分改为读取自定义的配置文件

在此,考虑了几种方法
方法一:用Spring框架,将数据连接配置写在Spring的配置文件里,用Spring的注入方式生成对象,供程序调用
方法二:自定义一个xml文件,在数据连接写在xml中,写一个JavaBean读取xml
方法三:用Property方式定义配置配置文件,用JavaBean来读取设置
因为是一个很小的东东,为此一项而使用Spring框架,似乎有点浪费,用xml来作配置文件,自己写读取方法时也不算简单,最简单的还是第三种,也不想为这点改动用大刀,简单的就是最好的:)

首先新建一个读取配置文件的DBConfig.java(省略了包及getter,setter方法)
/**
 * 这是一个获取数据库配置的类
 * 
@author ZF
 
*/
public class DBConfig {
    
private String url;
    
private String driver;
    
private String userName;
    
private String password;

    
/**
     * 
@param args
     
*/
    
public static void main(String[] args) {
        DBConfig conf 
= new DBConfig();

    }
    
    
/**
     * 在构造函数里读取配置文件
     
*/
    
public DBConfig(){
        Properties prop
= new Properties();
        
try
        {
            
//目录指到根目录的上级,是为了将配置文件放在WEB-INF目录下
            
//如果直接放在根目录下,则需将配置文件放在classes目录下
            InputStream is = getClass().getResourceAsStream("/../dbconfig.property");
            prop.load(is);
            
if(is!=null){
                is.close();
            }
        }
        
catch(Exception e) {
            e.printStackTrace();
        }

        
this.setDriver(prop.getProperty("Driver"));
        
this.setUrl(prop.getProperty("URL"));
        
this.setUserName(prop.getProperty("user"));
        
this.setPassword(prop.getProperty("password"));
    }


   
// getters()... and  setters()...
      
}

然后在WEB-INF目录下新建配置文件dbconfig.property
Driver=com.mysql.jdbc.Driver
URL
=jdbc:mysql://localhost/tsoa
user
=mysqluser
password
=mysqlpassword
修改获取数据连接的代码
//获取数据库连接配置
DBConfig dbconf = new DBConfig();

//根据连接配置获取数据库连接
Class.forName(dbconf.getDriver()).newInstance();
conn
= DriverManager.getConnection(dbconf.getUrl(),dbconf.getUserName(),dbconf.getPassword());
测试通过,OK,在此记录一下


只有注册用户登录后才能发表评论。


网站导航: