package com.oumasoft.bstmanage.ibatis.dao; /** * 描述:數據庫初始化基本類 * * @做者 王羣 * @建立日期 2010-04-08 * @修改人 xxx * @修改日期 xxx * @檢查人 xxx * @檢查日期 xxx */ import java.sql.SQLException; import com.ibatis.sqlmap.client.SqlMapClient; import com.oumasoft.bstmanage.ibatis.SqlMapConfig; import com.oumasoft.bstmanage.ibatis.data.JsgnPo; import com.oumasoft.bstmanage.ibatis.data.Test; import java.util.*; import org.w3c.dom.*; import java.io.*; import javax.servlet.http.HttpServletRequest; import javax.xml.transform.stream.*; import org.w3c.dom.*; import javax.xml.transform.*; import javax.xml.parsers.*; import javax.xml.transform.dom.*; import org.apache.log4j.Logger; import com.oumasoft.bstmanage.ibatis.dao.ClientDao; public class InitDBDao{ static Logger logger = Logger.getLogger(ClientDao.class.getName()); static SqlMapClient sqlMap = null; private static File file = null;//讀寫文件 private static DocumentBuilderFactory factory = null; private static DocumentBuilder builder = null; /** * 修改properties文件,參數是map鍵值集合,根據鍵修改值,若是沒有鍵值對就建立 * @param filePath 文件路徑 * @param keyVal 內容參數 * @param over是否覆蓋,true的話就覆蓋,false的話就是更新 * @return */ public static boolean writeProperties(String filePath, Map<String, String> keyVal ,boolean over) { boolean flag = false; Properties props = new Properties(); InputStream ips = null; try { ips = new BufferedInputStream(new FileInputStream(filePath)); props.load(ips); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { ips.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); logger.error("輸入關閉出錯"); } } OutputStream fos = null; if (over) { // 將新添加的內容覆蓋原來的內容 try { fos = new FileOutputStream(filePath); // 將keys轉換成數組 // 將鍵值逐一添加到property中 for (Object str : keyVal.keySet().toArray()) { props.setProperty(str.toString(), keyVal.get(str)); } props.store(fos, "set"); flag = true; } catch (IOException e) { e.printStackTrace(); } finally { try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); logger.error("輸出流沒法關閉"); } } }else{ try { fos = new FileOutputStream(filePath); for (Object key : keyVal.keySet().toArray()) { props.setProperty(key.toString(), keyVal.get(key).toString()); } props.store(fos,""); flag = true; } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); logger.error("輸出流關閉出錯"); } } } return flag; } /** * properties文件按鍵得值 * * @param filePath properties 文件的路徑 * @param key 要取值的鍵 * @return 獲得的值 */ public static String readValue(String filePath, String key) { Properties props = new Properties(); InputStream ips = null; try { ips = new BufferedInputStream(new FileInputStream(filePath)); props.load(ips); String value = props.getProperty(key); return value; } catch (FileNotFoundException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } finally { try { if(null != ips){ ips.close(); } } catch (IOException e) { e.printStackTrace(); } } } }