<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 閱讀(340) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 黄页网站免费观看| 99视频全部免费精品全部四虎| 大学生高清一级毛片免费| 亚洲婷婷在线视频| 中文字幕视频免费| a在线观看免费视频| 亚洲精品国自产拍在线观看| 国产亚洲精品国产福利在线观看 | 老司机69精品成免费视频| 亚洲色中文字幕无码AV| 精品乱子伦一区二区三区高清免费播放| 免费一级毛片在线播放| 日本一区二区三区在线视频观看免费| 野花香高清视频在线观看免费| 狠狠色婷婷狠狠狠亚洲综合| 中文字幕a∨在线乱码免费看| 亚洲日韩精品无码一区二区三区| 免费人成在线观看视频高潮| 亚洲国产精品久久66| 91免费播放人人爽人人快乐| 亚洲人成77777在线观看网| 香蕉视频在线观看免费国产婷婷| 成人婷婷网色偷偷亚洲男人的天堂| 免费在线观看黄网站| 抽搐一进一出gif免费视频| 久久久久亚洲AV无码专区首| 国产一卡二卡四卡免费| 亚洲国产欧美国产综合一区 | 噜噜综合亚洲AV中文无码| 亚洲M码 欧洲S码SSS222| 中文字幕a∨在线乱码免费看 | 亚洲无码视频在线| 亚洲电影免费在线观看| 亚洲日韩精品一区二区三区| 99久久99热精品免费观看国产 | 免费国产精品视频| 国产一区二区三区免费观看在线| 噜噜噜亚洲色成人网站∨| 国产免费牲交视频免费播放| 久久亚洲私人国产精品vA| 在线播放高清国语自产拍免费|