<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-199  評論-203  文章-11  trackbacks-0
    題計:這里給出java解析xml,以幫助人們理解許多容器是怎么做的。。像spring,struts等.
    1.mysql.xml代碼:
    <?xml version="1.0" encoding="UTF-8"?>
    <data>
    <datasource>
    <servername>localhost</servername>
    <serverport>3306</serverport>
    <databasename>juddi</databasename>
    <username>root</username>
    <password>123456</password>
    </datasource>
    </data>

    2.XML配置文件解析器,主要目的,是為做前期工作
    package com;
    /*
    * XML配置文件解析器,主要目的,是為做前期工作
    */
    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 {
        //定義一個properties用來存放屬性
    private Properties props;
    private String currentName;
    private StringBuffer currentValue=new StringBuffer();
    public ConfigParser(){
    this.props=new Properties();
    }
    public Properties getProps(){
    return this.props;
    }

    //這里是將xml中元素值加入currentValue
    public void characters(char[] ch, int start, int length)
    throws SAXException {

    currentValue.append(ch, start, length);
    }
    //在遇到</xx>時,將之間的字符存放在props中間
    public void endElement(String uri, String localName, String name)
    throws SAXException {
    props.put(currentName.toLowerCase(), currentValue.toString().trim());
    }
    //定義開始解析元素的方法,這里將<xx>中的名稱xx提出來,
    public void startElement(String uri, String localName, String qName,
    Attributes attributes) throws SAXException {
    currentValue.delete(0, currentValue.length());
    currentName=qName;
    }

    //
    }



    3.XML配置文件計取處理

    package com;
    /*
    * XML配置文件計取處理
    */
    import java.util.Properties;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    public class ParseXML {
    //定義一個Proerties用來存放屬性值
    private Properties props;
    public Properties getProps(){
    return this.props;
    }

    public void parse(String filename)throws Exception{
    //將我們的解析器對象化
    ConfigParser handler=new ConfigParser();
    //獲取SAX工廠對象
    SAXParserFactory factory=SAXParserFactory.newInstance();
    factory.setNamespaceAware(false);
    factory.setValidating(false);
    //獲取SAX解析
    SAXParser parser=factory.newSAXParser();

    try{
    //將解析器和解析對象xml聯系起來,開始解析
    parser.parse(filename, handler);
    //獲取解析成功后的屬性
    props=handler.getProps();
    }finally{
    factory=null;
    parser=null;
    handler=null;
    }
    }

    }


    4.讀取XML配置文件

    package com;
    /*
    * 讀取XML配置文件
    */
    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){
    e.printStackTrace();
    }

    }
    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");
    }

    }


    5.數據庫連接加測試數據庫連接加測試數據庫連接加測試

    package com;
    /*
    *
    * 數據庫連接加測試數據庫連接加測試數據庫連接加測試
    */
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    public class DBConnection {
    private Connection con;
    private DBConnection(){

    }
    public static DBConnection newInstance(){
    return new DBConnection();
    }
    public Connection getConnection(){
    ReadConfigXml r=new ReadConfigXml("src/mysql.xml");
    String url="jdbc:mysql://"+r.getServerName()+":"+r.getServerPort()+"/"+r.getDatabaseName();
    String username=r.getUserName();
    String password=r.getPassword();

    try{
    Class.forName("com.mysql.jdbc.Driver");
    con=DriverManager.getConnection(url,username,password);
    }catch(ClassNotFoundException e){
    e.printStackTrace();

    }catch(SQLException e){
    e.printStackTrace();
    }
    return con;
    }
    //測試連接
    public static void main(String args[]){
    Connection con=DBConnection.newInstance().getConnection();
    System.out.println("測試成功!");
    }

    }
    posted on 2009-09-08 12:51 Werther 閱讀(342) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲卡一卡2卡三卡4卡无卡三| 亚洲午夜精品第一区二区8050| 亚洲专区先锋影音| 免费观看久久精彩视频| 亚洲午夜久久久久久噜噜噜| 久久久WWW免费人成精品| 国产亚洲?V无码?V男人的天堂| www成人免费观看网站| 中文字幕亚洲综合久久菠萝蜜| 久久毛片免费看一区二区三区| 亚洲中文字幕无码不卡电影 | 久久亚洲私人国产精品| 久久久精品2019免费观看| 亚洲成a人不卡在线观看| 18禁止观看免费私人影院| 在线观看日本亚洲一区| 国产大片51精品免费观看| 免费一区二区无码视频在线播放| 亚洲综合区小说区激情区| 国产在线一区二区综合免费视频| 激情内射亚洲一区二区三区| 国内精品乱码卡1卡2卡3免费| 456亚洲人成在线播放网站| 国产网站免费观看| aa级毛片毛片免费观看久| 亚洲av无码一区二区三区网站 | 波多野结衣中文字幕免费视频 | 亚洲中文无码卡通动漫野外 | 亚洲精品自产拍在线观看动漫| 亚洲精品在线免费观看视频| 成人亚洲国产va天堂| 亚洲国产精品无码久久久久久曰| 你是我的城池营垒免费看| 亚洲免费观看在线视频| 免费一级毛片在线播放不收费| a级毛片免费高清毛片视频| 亚洲av无码国产综合专区| 亚洲国产精品尤物yw在线 | 久久久久亚洲AV无码专区首| 中文字幕无码不卡免费视频| 日韩大片免费观看视频播放 |