XMLtoObject

Object:

package com.lingtu.nanning.config;

public class DataSource {
private String dataLink;

private String driver;

private String userName;

private String password;

private String maxConn;

public String getDataLink() {
  return dataLink;
}

public void setDataLink(String dataLink) {
  this.dataLink = dataLink;
}

public String getDriver() {
  return driver;
}

public void setDriver(String driver) {
  this.driver = driver;
}

public String getMaxConn() {
  return maxConn;
}

public void setMaxConn(String maxConn) {
  this.maxConn = maxConn;
}

public String getPassword() {
  return password;
}

public void setPassword(String password) {
  this.password = password;
}

public String getUserName() {
  return userName;
}

public void setUserName(String userName) {
  this.userName = userName;
}
}

XML:

<DataSource>
  <dataLink>jdbc:oracle:thin:@172.16.0.82:1521:orcl</dataLink>
  <driver>oracle.jdbc.driver.OracleDriver</driver>
  <userName>oss</userName>
  <password>oss</password>
  <maxConn>100</maxConn>
</DataSource>

code:

package com.lingtu.nanning.config;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.sql.Connection;

import org.apache.log4j.Logger;


import com.lingtu.nanning.dao.DAO;
import com.lingtu.nanning.exception.ConfigException;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class DataSourceManager {

private static Logger logger = Logger.getLogger(DataSourceManager.class);

private static DataSourceManager dataSourceManager = null;

public static String APPPATH = null;

public static DataSourceManager getInstance() {
  if (dataSourceManager == null) {
   dataSourceManager = new DataSourceManager();
  }
  return dataSourceManager;
}

public void initDataSource() throws ConfigException {
  String configFilePath = APPPATH + "config/config.xml";
  DataSource dataSource = null;
  InputStream in = null;
  XStream stream = null;
  Connection conn = null;
  try {
   in = new FileInputStream(configFilePath);
   InputStreamReader reader = new InputStreamReader(in, Charset
     .forName("GBK"));
   stream = new XStream(new DomDriver());
   stream.alias("DataSource", DataSource.class);
   dataSource = (DataSource) stream.fromXML(reader);
   DAO.dataSource = dataSource;
   conn = DAO.getInstance().getConnection();
   if (conn == null) {
    throw new ConfigException("图层权限数据源连接测试失败!");
   }
  } catch (Exception e) {
   logger.error(e.getMessage());
   throw new ConfigException("图层权限数据源配置或连接错误!");
  } finally {
   try {
    in.close();
    if (conn != null) {
     conn.close();
    }
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
}

public void saveDataSource(DataSource dataSource) throws ConfigException {
  String configFilePath = APPPATH + "config\\config.xml";
  XStream stream = new XStream();
  OutputStream out = null;
  Connection conn = null;
  try {
   out = new FileOutputStream(new File(configFilePath));
   OutputStreamWriter writer = new OutputStreamWriter(out, Charset
     .forName("GBK"));
   stream.alias("DataSource", DataSource.class);
   stream.toXML(dataSource, writer);
   DAO.dataSource = dataSource;
   conn = DAO.getInstance().getConnection();
   if (conn == null) {
    throw new ConfigException("图层权限数据源连接测试失败!");
   }
  } catch (Exception e) {
   logger.error(e.getMessage());
   throw new ConfigException("图层权限数据源配置或连接错误!");
  } finally {
   try {
    out.close();
    if (conn != null) {
     conn.close();
    }
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值