`
xu520
  • 浏览: 77664 次
  • 性别: Icon_minigender_1
  • 来自: 金华
社区版块
存档分类
最新评论

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";
}
//---------------------------------------------------------------------------------
}
//****************************************************************

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics