具体请点击:http://www.verydemo.com/demo_c146_i16183.html
根据同事的需求写的。
用这个工具可以解决配置文件只需要配一次数据库信息。
package com.utstar.nms.vmm.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Hashtable;
....................................................................
/**
* Author: Steven Zhu
* Date:2008-1-18 下午05:27:08
* NMS, UTStarcom, Shenzhen
*/
public class HibernateConfigFileTool
{
public static void reWriteHibernateConfigFile(String fromFile, String toFile)
{
String database_params =fromFile;
File hibernateConfigFile = new File(toFile);
File tmpConfigFile = new File("conf/qpf/hibernate/hibernate_tmp.cfg.xml");
BufferedReader br;
BufferedWriter bw;
String line="";
try
{
Hashtable dbParamHash =readDatabaseConfigInfo(database_params);
br = new BufferedReader(new FileReader(hibernateConfigFile));
bw = new BufferedWriter(new FileWriter(tmpConfigFile));
line = br.readLine();
while(line !=null)
{
line = reWriteDatabaseInfo(line,dbParamHash);
bw.write(line);
bw.newLine();
line=br.readLine();
}
if(br !=null) br.close();
if(bw != null) bw.close();
//把替换后的结果覆盖hibernate配置文件
FileTool.copySingleFile(tmpConfigFile, hibernateConfigFile);
//删除临时文件
FileTool.deleteFile(tmpConfigFile.getAbsolutePath());
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static String replaceMiddleString(String inString,String prefix,String suffix,String replaceStr )
{
String result=prefix+replaceStr+suffix;
return result;
}
public static Hashtable readDatabaseConfigInfo(String stringConfigurationFileName)
{
try
{
Hashtable hashresult = WacosConfigurator.readDatabaseParametersConfigurationFile(stringConfigurationFileName);
return hashresult;
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
public static String reWriteDatabaseInfo(String line,Hashtable hash)
{
//System.out.println("before:"+line);
String result="";
String prefix="";
String suffix="</property>";
String replacement="";
String connection_username = "<property name=/"connection.username/">";
String connection_password = "<property name=/"connection.password/">";
String connection_url = "<property name=/"connection.url/">";
String connection_drivername="<property name=/"connection.driver_class/">";
try
{
if(line.indexOf(connection_username)>=0)
{//本行用配置文件的用户名来替换
prefix=connection_username;
replacement= (String)(hash.get("username"));
result =replaceMiddleString(line,prefix,suffix,replacement);
}
else if(line.indexOf(connection_password)>=0)
{ //本行用配置文件的密码来替换
prefix=connection_password;
replacement= (String)(hash.get("password"));
result =replaceMiddleString(line,prefix,suffix,replacement);
}
else if(line.indexOf(connection_url)>=0)
{
//本行用配置文件的url来替换
prefix=connection_url;
replacement= (String)(hash.get("url"));
result =replaceMiddleString(line,prefix,suffix,replacement);
}else if(line.indexOf(connection_drivername)>=0){
prefix=connection_drivername;
replacement= (String)(hash.get("drivername"));
result =replaceMiddleString(line,prefix,suffix,replacement);
}
else
{
result=line;
}
}
catch (Exception e)
{
e.printStackTrace();
}
//System.out.println("after:"+result);
return result;
}
public static void main(String[] args)
{
//reWriteHibernateConfigFile();
}
}
相关推荐
wpa-suppliant 中wpa_supplicant.conf 配置选项解释。
java操作properties属性文件jp.gr.java_conf.ussiy.app.propedit_5.3.3.jar, 有实现步骤及操作中文例子
包含haarcascade_frontalface_default.xml等所有xml文件。
lvgl,即Light and Versatile Graphics Library,是一个开源的图形库,可以运行在各类单片机上,在使用时需要配置lv_conf.h文件对lvgl配置和剪裁,本文对lv_conf.h进行的全方位的解读
修改安卓系统网络电视盒子的遥控器代码需要用到盒子安卓系统的\system\etc\remote.conf 文件(该文件定义遥控代码的值),和\system\usr\keylayout\Vendor_0001_Product_0001.kl文件(该文件定义遥控代码值的使用...
apache http conf apache_http.conf详解 优化http服务器
TeamTalk 在启动file_server时报错 [IMPacketDispatcher.java:99] - 2209 - packet#unhandled serviceId:1, commandId:0 可以用这个conf替换你的,注意修改成自己的ip和对应端口
1.需要创建个件/etc/resolvconf/resolv.conf.d/tail 2.在该件中写需要的dns服务器,格式与/etc/resolv.conf相
wpa_supplicant的配置文件,使wpa_supplicant生效。
Li_2020_J._Phys.%3A_Conf._Ser._1617_012095.pdf
2、编辑apache安装目录的conf目录配置文件httpd.conf,添加如下内容 LoadModule weblogic_module modules/mod_wl_xx.so <IfModule mod_weblogic.c> WebLogicHost 代理地址(如:192.168.13.18) WebLogicPort ...
redis.conf Redis配置文件 下载 redis.conf 配置详解 Redis配置文件redis.conf 详解1.基本配置内存单位的表示# 1k => 1000 bytes# ...Redis 的详细介绍Redis 的下载地址
头文件 stm32f10x_conf.h 解决keil 4.2.2 下建立工程重定义问题
此.conf文件是我查阅很多博客才自己修改下载好的,是设置Code::blocks的15种高亮皮肤的必要文件
opensmile工具包中的一个配置文件
xfs_conf.dllxfs_conf.dllxfs_conf.dllxfs_conf.dllxfs_conf.dllxfs_conf.dll
.Xcode_13_beta.xip.conf
jp.gr.java_conf.ussiy.app.propedit_5.3.3 jp.gr.java_conf.ussiy.app.propedit_5.3.3
优化后的zabbix-server配置文件