posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          jdom xpath
          今天的空,回味一下勇哥的視頻,敲了一段他的程序,感覺整個(gè)思想還是不錯(cuò)的。利用Xpath,雖然我一直在用dom4j,多少對jdom還是挺關(guān)注的。

          PS:2009-8-8 17:24:15
          之前這個(gè)測試程序還一直會(huì)有問題,
          后來解決了,問題就是我沒用到最新JDOM包,這個(gè)問題,總是會(huì)讓人很郁悶。

          <?xml version="1.0" encoding="UTF-8"?>
          <sys-configure>
              
          <jdbc-info>
                  
          <driver-class-name>net.sourceforge.jtds.jdbc.Driver</driver-class-name>
                  
          <url>jdbc:jtds:sqlserver://121.14.110.49:1433/wubai_wapcp</url>
                  
          <username>wap</username>
                  
          <password>esunxyz500wan!^wap</password>
              
          </jdbc-info>
              <!--N多的bean-->
              
          <beans>
                  
          <bean id="com.Gavin.jdomXpath.Test1" class="com.Gavin.jdomXpath.Test1"></bean>
                  
          <bean id="com.Gavin.jdomXpath.Test2" class="com.Gavin.jdomXpath.Test2"></bean>
                  
          <bean id="com.Gavin.jdomXpath.Test3" class="com.Gavin.jdomXpath.Test3"></bean>
                  
          <bean id="com.Gavin.jdomXpath.Test4" class="com.Gavin.jdomXpath.Test4"></bean>
                  
          <bean id="com.Gavin.jdomXpath.Test5" class="com.Gavin.jdomXpath.Test5"></bean>
              
          </beans>
          </sys-configure>

          package com.Gavin.jdomXpath;

          import java.io.IOException;
          import java.util.HashMap;
          import java.util.Iterator;
          import java.util.List;
          import java.util.Map;

          import org.apache.log4j.Logger;
          import org.jdom.Document;
          import org.jdom.Element;
          import org.jdom.JDOMException;
          import org.jdom.input.SAXBuilder;
          import org.jdom.xpath.XPath;


          public class GlobalConfigure {

              
          private static Logger logger = Logger.getLogger(GlobalConfigure.class);
              
              
          private static GlobalConfigure instance = new GlobalConfigure();
              
              
          private JdbcInfo jdbcInfo = new JdbcInfo();
              
              
          private Map<String, Object> beanMap = new HashMap<String, Object>();
              
              
          private static final String CONFIGE_FILE_NAME = "global_configure.xml";
              
              
          private Element rootElt;
              
              
          public static GlobalConfigure getInstance() {
                  
          return instance;
              }

              
              
          private GlobalConfigure() {
                  SAXBuilder sb 
          = new SAXBuilder();
                  
          try {
                      Document doc 
          = sb.build(Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIGE_FILE_NAME));
                      
          this.rootElt = doc.getRootElement();
                      initJdbcInfo();

                      initBeans();
                  }
           catch (JDOMException e) {
                      e.printStackTrace();
                  }
           catch (IOException e) {
                      e.printStackTrace();
                  }

              }

              
              
          public JdbcInfo getJdbcInfo() {
                  
          return jdbcInfo;
              }

              
              
          public Object getBean(Class c) {
                  
          return beanMap.get(c.getName());
              }

              
              
          private void initJdbcInfo() {
                  
          try {
                      Element driverClassNameElt 
          = (Element)XPath.selectSingleNode(rootElt, "//sys-configure/jdbc-info/driver-class-name");
                      Element urlElt 
          = (Element)XPath.selectSingleNode(rootElt, "//sys-configure/jdbc-info/url");
                      Element usernameElt 
          = (Element)XPath.selectSingleNode(rootElt, "//sys-configure/jdbc-info/username");
                      Element passwordElt 
          = (Element)XPath.selectSingleNode(rootElt, "//sys-configure/jdbc-info/password");
                      logger.debug(urlElt.getText());
                      jdbcInfo.setDriverClassName(driverClassNameElt.getText());
                      jdbcInfo.setUrl(urlElt.getText());
                      jdbcInfo.setUsername(usernameElt.getText());
                      jdbcInfo.setPassword(passwordElt.getText());
                  }
           catch (JDOMException e) {
                      e.printStackTrace();
                  }

              }

              
              
          private void initBeans() {
                  
          try {
                      List
          <Element> beanList = XPath.selectNodes(rootElt, "//sys-configure/beans/bean");
                      
          for(Iterator<Element> it = beanList.iterator(); it.hasNext();) {
                          Element beanElt 
          = (Element)it.next();
                          String id 
          = beanElt.getAttributeValue("id");
                          String className 
          = beanElt.getAttributeValue("class");
                          
                          Object obj 
          = Class.forName(className).newInstance();
                          beanMap.put(id, obj);
                      }
                      
                  }
           catch (JDOMException e) {
                      e.printStackTrace();
                  }
           catch (InstantiationException e) {
                      e.printStackTrace();
                  }
           catch (IllegalAccessException e) {
                      e.printStackTrace();
                  }
           catch (ClassNotFoundException e) {
                      e.printStackTrace();
                  }

              }

              
          public static void main(String[] args) {
                  
                  GlobalConfigure.getInstance().getJdbcInfo().toString();
                  
          //        Test1 t = (Test1)GlobalConfigure.getInstance().getBean(Test1.class);
                  
                  System.out.println(
          "uuu");

              }

          }



          package com.Gavin.jdomXpath;

          public class JdbcInfo {
              
          private String driverClassName;
              
          private String url;
              
          private String username;
              
          private String password;
              
              
          public String getDriverClassName() {
                  
          return driverClassName;
              }

              
          public void setDriverClassName(String driverClassName) {
                  
          this.driverClassName = driverClassName;
              }

              
          public String getUrl() {
                  
          return url;
              }

              
          public void setUrl(String url) {
                  
          this.url = url;
              }

              
          public String getUsername() {
                  
          return username;
              }

              
          public void setUsername(String username) {
                  
          this.username = username;
              }

              
          public String getPassword() {
                  
          return password;
              }

              
          public void setPassword(String password) {
                  
          this.password = password;
              }

              
          public String toString() {
                  
          return "JdbcInfo {driver-class-name:" + this.driverClassName
                      
          + "url:" + this.url
                      
          + "username:" + this.username
                      
          + "password:" + this.password + "}";
              }

          }

          主站蜘蛛池模板: 哈密市| 湖南省| 宜章县| 青海省| 邹平县| 米林县| 资溪县| 奎屯市| 军事| 井冈山市| 临高县| 洪江市| 禄丰县| 温州市| 左云县| 合作市| 赤水市| 永兴县| 正蓝旗| 基隆市| 贵阳市| 砀山县| 汉中市| 弋阳县| 无极县| 开阳县| 鄂托克前旗| 洛阳市| 宜兰县| 淳安县| 黎平县| 于田县| 黎城县| 乌拉特前旗| 宣威市| 邻水| 晋宁县| 仲巴县| 开阳县| 广汉市| 上思县|