read XML - SAX parser

class ConfigParser:

 

 

import org.xml.sax.helpers.DefaultHandler;

import java.util.Properties;

import org.xml.sax.Attributes;

import org.xml.sax.SAXException;

 

public class ConfigParser extends DefaultHandler {

private Properties props;

private String currentName;

private StringBuffer currentValue = new StringBuffer();

public ConfigParser()

{

this.props = new Properties();

}

public Properties GetProps()

{

return this.props;

}

public void characters(char[] ch, int start, int length) throws SAXException

{

currentValue.append(ch,start,length);

}

public void endElement(String uri, String localName, String name) throws SAXException

{

props.put(currentName.toLowerCase(), currentValue.toString().trim());

}

public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException

{

currentValue.delete(0, currentValue.length());

currentName = qName;

}

 

}

 

 

class ParseXML:

 

 

import java.util.Properties;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

 

public class ParseXML {

 

private Properties props;

public Properties GetProps()

{

return this.props;

}

public void parse(String filename) throws Exception

{&l t;/p>

ConfigParser handler = new ConfigParser();

SAXParserFactory factory = SAXParserFactory.newInstance();

factory.setNamespaceAware(false);

factory.setValidating(false);

SAXParser parser = factory.newSAXParser();

try

{

parser.parse(filename, handler);

props = handler.GetProps();

}

finally

{

factory = null;

 

parser = null;

handler = null;

}

}

}

 

 

class ReadConfigXML:

 

 

import java.util.Properties;

 

public class ReadConfigXML {

private Properties props;

public ReadConfigXML(String url)

{

ParseXML myRead = new ParseXML();

try

{

myRead.parse(url);

props = new Properties();

props = myRead.GetProps();

}

catch(Exception e)

{}

}

public String GetServerName()

{

return props.getProperty("servername");

}

public String GetServerPort()

{

return props.getProperty("serverport");

}

public String GetDatabaseName()

{

return props.getProperty("databasename");

}

public String GetUserName()

{

return props.getProperty("username");

}

public String GetPassword()

{

return props.getProperty("password");

}

 

}

 

 

class DBConnection:

 

 

import java.sql.*;

 

public class DBConnection {

private Connection conn;

private DBConnection()

{

}

public static DBConnection newInstance()

{

return new DBConnection();

}

public Connection GetConnection()

{

ReadConfigXML rcXML = new ReadConfigXML("E:/program/java/j2se/dbconfig.xml");

String url = "JDBC:MYSQL://"+rcXML.GetServerName()+":" + rcXML.GetServerPort() +"/" +rcXML.GetDatabaseName();

String username = rcXML.GetUserName();

String password = rcXML.GetPassword();

try

{

Class.forName("com.mysql.jdbc.Driver");

conn = DriverManager.getConnection(url,username,password);

}

catch(ClassNotFoundException e)

{

e.printStackTrace(); 

}

catch(SQLException e)

{

e.printStackTrace(); 

}

System.out.println(rcXML.GetServerName());

System.out.println(rcXML.GetServerPort());

System.out.println(rcXML.GetDatabaseName());

System.out.println(rcXML.GetUserName());

System.out.println(rcXML.GetPassword());

return conn; 

}

 

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Connection conn = DBConnection.newInstance().GetConnection();

Statement stmt = null;

ResultSet rs = null;

try

{

stmt = conn.createStatement();

String sql = "select count(*) count from dbversion";

rs = stmt.executeQuery(sql);

while(rs.next())

{

System.out.println("data count = " + rs.getInt("count"));

}

System.out.println("connect succ!");

}

catch(SQLException e)

{

}

 

}

 

}

 

-----------------------------------------------------------------------

 

XML:

 

<?xml version='1.0' encoding='utf-8'?> 

<data>

<datasource>   

   

   <servername> 

                localhost

            </servername>

 

            <serverport>

                3306

            </serverport>

 

            <databasename>

               pbsnmdb

            </databasename>

 

            <username>

                root

            </username>

 

           <password>

               1234

            </password>

</datasource>

</data>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值