JAVA读取XML文件并利用该文件对数据库进行配置操作

//JAVA读取XML文件并利用该文件对数据库进行配置操作
//****************************************************************
//****************XML文件(database.xml)**************
<?xml version="1.0" encoding="GB2312"?>
<administrator>
<!--原数据库-->
<drivername>com.informix.jdbc.IfxDriver</drivername>
<username>informix</username>
<password>informix</password>
<datebase_url>jdbc:informix-sqli://192.168.0.1:1526/db_das:INFORMIXSERVER=jl_das;</datebase_url>
<maxactive>5</maxactive>
<maxidle>1</maxidle>
<maxwait>8000</maxwait>
<!--新数据库-->
<drivername>com.informix.jdbc.IfxDriver</drivername>
<username>informix</username>
<password>informix</password>
<datebase_url>jdbc:informix-sqli://192.168.0.173:1526/jl_das:INFORMIXSERVER=ol_chinaren5;</datebase_url>
<maxactive>5</maxactive>
<maxidle>1</maxidle>
<maxwait>8000</maxwait>
</administrator>
//****************************************************************
//****************读取XML文件的类**************
package readXml;

import org.w3c.dom.*;
import javax.xml.parsers.*;
/**
* @author dongyanyong
* @version 1.0
* @读取XML文件
*/

public class ReadFromXml
{
private Document doc;
private DocumentBuilderFactory dbf;
private DocumentBuilder db;
public ReadFromXml()
{
try{
dbf=DocumentBuilderFactory.newInstance();
db=dbf.newDocumentBuilder();
doc=db.parse("database.xml");
}
catch(Exception e)
{
System.out.println("DB xml not found!");
e.printStackTrace();
}
}
//-----------------------------------------------------------------
// 参数:空 返回值:databaseinfo 数组
public String[] getXmlTag()
{
String[] databaseinfo=new String[14];
try{
databaseinfo[0]=doc.getElementsByTagName("drivername").item(0).getFirstChild().getNodeValue();
databaseinfo[1]=doc.getElementsByTagName("username").item(0).getFirstChild().getNodeValue();
databaseinfo[2]=doc.getElementsByTagName("password").item(0).getFirstChild().getNodeValue();
databaseinfo[3]=doc.getElementsByTagName("datebase_url").item(0).getFirstChild().getNodeValue();
databaseinfo[4]=doc.getElementsByTagName("maxactive").item(0).getFirstChild().getNodeValue();
databaseinfo[5]=doc.getElementsByTagName("maxidle").item(0).getFirstChild().getNodeValue();
databaseinfo[6]=doc.getElementsByTagName("maxwait").item(0).getFirstChild().getNodeValue();

databaseinfo[7]=doc.getElementsByTagName("drivername").item(1).getFirstChild().getNodeValue();
databaseinfo[8]=doc.getElementsByTagName("username").item(1).getFirstChild().getNodeValue();
databaseinfo[9]=doc.getElementsByTagName("password").item(1).getFirstChild().getNodeValue();
databaseinfo[10]=doc.getElementsByTagName("datebase_url").item(1).getFirstChild().getNodeValue();
databaseinfo[11]=doc.getElementsByTagName("maxactive").item(1).getFirstChild().getNodeValue();
databaseinfo[12]=doc.getElementsByTagName("maxidle").item(1).getFirstChild().getNodeValue();
databaseinfo[13]=doc.getElementsByTagName("maxwait").item(1).getFirstChild().getNodeValue();
}
catch(Exception e)
{
System.out.println("read xml content error!");
e.printStackTrace();
}
return databaseinfo;
}
//----------------------------------------------------------------
}
//****************************************************************
//*******对数据库操作的类(应用读取到的XML)**********
package readXML;

import java.sql.*;
import org.apache.commons.dbcp.*;
/**
* @author dongyanyong
* @version 1.0
* @对数据库进行操作的类
*/
public class PoolManager
{
private static PoolManager pool = new PoolManager();
private BasicDataSource bds = null;
//存放读取xml文件返回值的数组
private String[] dbinfo;
//声明类的实例
ReadFromXml read1;

private PoolManager()
{
bds = new BasicDataSource();
dbinfo=new String[14];
read1=new ReadFromXml();
dbinfo=read1.getXmlTag();

bds.setDriverClassName(dbinfo[7]);
bds.setUsername(dbinfo[8]);
bds.setPassword(dbinfo[9]);
bds.setUrl(dbinfo[10]);
bds.setMaxActive(Integer.parseInt(dbinfo[11]));
bds.setMaxIdle(Integer.parseInt(dbinfo[12]));
bds.setMaxWait(Integer.parseInt(dbinfo[13]));
}
//---------------------------------------------------------------
public static PoolManager getInstance()
{
return pool;
}
//---------------------------------------------------------------
public Connection getConnection() throws java.sql.SQLException
{
return bds.getConnection();
}
//---------------------------------------------------------------
public static void closeRs(ResultSet rs)
{
if(rs != null)
{
try{
rs.close();
}
catch(java.sql.SQLException ex)
{
System.out.println(ex);
}
}
}
//---------------------------------------------------------------
public static void closeSs(Statement ss)
{
if(ss != null)
{
try{
ss.close();
}
catch(java.sql.SQLException ex)
{
System.out.println(ex);
}
}
}
//----------------------------------------------------------------
public static void closeConnection(Connection conn)
{
if(conn != null)
{
try{
conn.close();
}
catch(java.sql.SQLException ex)
{
System.out.println(ex);
}
}
}
//----------------------------------------------------------------
}
//****************************************************************
package readXML;

import java.sql.*;
import java.lang.*;

import readXML.PoolManager;
/**
* @author dongyanyong
* @version 1.0
* @利用对数据库进行操作的类进行对数据库操作
*/
public class ExecuteSQL
{
private Connection conn = null,conn1=null;
private PreparedStatement ps = null,ps1=null;
private ResultSet rs = null;
private PoolManager pool = null;

private String message=null; //接收函数返回消息

public ExecuteSQL()
{
pool=PoolManager.getInstance();
}
//----------------------------------------------------------------
private String ExcutSql(String sql)
{ //利用得到的sql语句来执行
System.out.println(sql);
try{
conn = pool.getConnection();
ps = conn.prepareStatement(sql);
int k=ps.executeUpdate();
}
catch(java.sql.SQLException e)
{
System.out.print(e);
return e.toString();
}
finally
{
PoolManager.closeSs(ps);
PoolManager.closeConnection(conn);
}
return "ok";
}
//----------------------------------------------------------------
private String InsertIn()
{
/*执行sql*/
String sql=" insert into tableA values('a','c','s','s') ";
message=ExcutSql(sql);
if(!message.equals("ok"))
return message;
else
return "ok";
}
//---------------------------------------------------------------------------------
}
//****************************************************************

//JAVA读取XML文件并利用该文件对数据库进行配置操作
//****************************************************************
//****************XML文件(database.xml)**************
<?xml version="1.0" encoding="GB2312"?>
<administrator>
<!--原数据库-->
<drivername>com.informix.jdbc.IfxDriver</drivername>
<username>informix</username>
<password>informix</password>
<datebase_url>jdbc:informix-sqli://192.168.0.1:1526/db_das:INFORMIXSERVER=jl_das;</datebase_url>
<maxactive>5</maxactive>
<maxidle>1</maxidle>
<maxwait>8000</maxwait>
<!--新数据库-->
<drivername>com.informix.jdbc.IfxDriver</drivername>
<username>informix</username>
<password>informix</password>
<datebase_url>jdbc:informix-sqli://192.168.0.173:1526/jl_das:INFORMIXSERVER=ol_chinaren5;</datebase_url>
<maxactive>5</maxactive>
<maxidle>1</maxidle>
<maxwait>8000</maxwait>
</administrator>
//****************************************************************
//****************读取XML文件的类**************
package readXml;

import org.w3c.dom.*;
import javax.xml.parsers.*;
/**
* @author dongyanyong
* @version 1.0
* @读取XML文件
*/

public class ReadFromXml
{
private Document doc;
private DocumentBuilderFactory dbf;
private DocumentBuilder db;
public ReadFromXml()
{
try{
dbf=DocumentBuilderFactory.newInstance();
db=dbf.newDocumentBuilder();
doc=db.parse("database.xml");
}
catch(Exception e)
{
System.out.println("DB xml not found!");
e.printStackTrace();
}
}
//-----------------------------------------------------------------
// 参数:空 返回值:databaseinfo 数组
public String[] getXmlTag()
{
String[] databaseinfo=new String[14];
try{
databaseinfo[0]=doc.getElementsByTagName("drivername").item(0).getFirstChild().getNodeValue();
databaseinfo[1]=doc.getElementsByTagName("username").item(0).getFirstChild().getNodeValue();
databaseinfo[2]=doc.getElementsByTagName("password").item(0).getFirstChild().getNodeValue();
databaseinfo[3]=doc.getElementsByTagName("datebase_url").item(0).getFirstChild().getNodeValue();
databaseinfo[4]=doc.getElementsByTagName("maxactive").item(0).getFirstChild().getNodeValue();
databaseinfo[5]=doc.getElementsByTagName("maxidle").item(0).getFirstChild().getNodeValue();
databaseinfo[6]=doc.getElementsByTagName("maxwait").item(0).getFirstChild().getNodeValue();

databaseinfo[7]=doc.getElementsByTagName("drivername").item(1).getFirstChild().getNodeValue();
databaseinfo[8]=doc.getElementsByTagName("username").item(1).getFirstChild().getNodeValue();
databaseinfo[9]=doc.getElementsByTagName("password").item(1).getFirstChild().getNodeValue();
databaseinfo[10]=doc.getElementsByTagName("datebase_url").item(1).getFirstChild().getNodeValue();
databaseinfo[11]=doc.getElementsByTagName("maxactive").item(1).getFirstChild().getNodeValue();
databaseinfo[12]=doc.getElementsByTagName("maxidle").item(1).getFirstChild().getNodeValue();
databaseinfo[13]=doc.getElementsByTagName("maxwait").item(1).getFirstChild().getNodeValue();
}
catch(Exception e)
{
System.out.println("read xml content error!");
e.printStackTrace();
}
return databaseinfo;
}
//----------------------------------------------------------------
}
//****************************************************************
//*******对数据库操作的类(应用读取到的XML)**********
package readXML;

import java.sql.*;
import org.apache.commons.dbcp.*;
/**
* @author dongyanyong
* @version 1.0
* @对数据库进行操作的类
*/
public class PoolManager
{
private static PoolManager pool = new PoolManager();
private BasicDataSource bds = null;
//存放读取xml文件返回值的数组
private String[] dbinfo;
//声明类的实例
ReadFromXml read1;

private PoolManager()
{
bds = new BasicDataSource();
dbinfo=new String[14];
read1=new ReadFromXml();
dbinfo=read1.getXmlTag();

bds.setDriverClassName(dbinfo[7]);
bds.setUsername(dbinfo[8]);
bds.setPassword(dbinfo[9]);
bds.setUrl(dbinfo[10]);
bds.setMaxActive(Integer.parseInt(dbinfo[11]));
bds.setMaxIdle(Integer.parseInt(dbinfo[12]));
bds.setMaxWait(Integer.parseInt(dbinfo[13]));
}
//---------------------------------------------------------------
public static PoolManager getInstance()
{
return pool;
}
//---------------------------------------------------------------
public Connection getConnection() throws java.sql.SQLException
{
return bds.getConnection();
}
//---------------------------------------------------------------
public static void closeRs(ResultSet rs)
{
if(rs != null)
{
try{
rs.close();
}
catch(java.sql.SQLException ex)
{
System.out.println(ex);
}
}
}
//---------------------------------------------------------------
public static void closeSs(Statement ss)
{
if(ss != null)
{
try{
ss.close();
}
catch(java.sql.SQLException ex)
{
System.out.println(ex);
}
}
}
//----------------------------------------------------------------
public static void closeConnection(Connection conn)
{
if(conn != null)
{
try{
conn.close();
}
catch(java.sql.SQLException ex)
{
System.out.println(ex);
}
}
}
//----------------------------------------------------------------
}
//****************************************************************
package readXML;

import java.sql.*;
import java.lang.*;

import readXML.PoolManager;
/**
* @author dongyanyong
* @version 1.0
* @利用对数据库进行操作的类进行对数据库操作
*/
public class ExecuteSQL
{
private Connection conn = null,conn1=null;
private PreparedStatement ps = null,ps1=null;
private ResultSet rs = null;
private PoolManager pool = null;

private String message=null; //接收函数返回消息

public ExecuteSQL()
{
pool=PoolManager.getInstance();
}
//----------------------------------------------------------------
private String ExcutSql(String sql)
{ //利用得到的sql语句来执行
System.out.println(sql);
try{
conn = pool.getConnection();
ps = conn.prepareStatement(sql);
int k=ps.executeUpdate();
}
catch(java.sql.SQLException e)
{
System.out.print(e);
return e.toString();
}
finally
{
PoolManager.closeSs(ps);
PoolManager.closeConnection(conn);
}
return "ok";
}
//----------------------------------------------------------------
private String InsertIn()
{
/*执行sql*/
String sql=" insert into tableA values('a','c','s','s') ";
message=ExcutSql(sql);
if(!message.equals("ok"))
return message;
else
return "ok";
}
//---------------------------------------------------------------------------------
}
//****************************************************************

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值