-- 作者:jlive
-- 发布时间:4/7/2004 3:07:00 PM
-- jdom samples (3)
数据库的配置文件,也由xml形式来设制,且能根够条件,动态配置哦 <?xml version="1.0" encoding="gb2312"?> <!-- ============================================================= --> <!-- databases connection config xml file --> <!-- date: 2004-01-13 17:22--> <database-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="database-config.xsd"> <database-type name="Domino" validate="false"> <driverClassName>lotus.jdbc.domino.DominoDriver</driverClassName> <url>jdbc:domino:DB/Server</url> <userName>username</userName> <password>password</password> </database-type> <database-type name="Oracle" validate="true"> <driverClassName>oracle.jdbc.driver.OracleDriver</driverClassName> <url>jdbc:oracle:thin:@host:1521:db</url> <userName>username</userName> <password>password</password> </database-type> <database-type name="MS SQLSERVER" validate="false"> <driverClassName>com.microsoft.jdbc.sqlserver.SQLServerDriver</driverClassName> <url>jdbc:microsoft:sqlserver://host:1433;DatabaseName=db</url> <userName>username</userName> <password>password</password> </database-type> <database-type name="MySQL" validate="false"> <driverClassName>org.gjt.mm.mysql.Driver</driverClassName> <url>jdbc:mysql://host</url> <userName>username</userName> <password>password</password> </database-type> </database-config> schema: <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by klfdaskl (fasdfdas) --> <!--W3C Schema generated by XMLSPY v5 rel. 4 U (http://www.xmlspy.com)--> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="database-config"> <xs:complexType> <xs:sequence> <xs:element ref="database-type" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="database-type"> <xs:complexType> <xs:sequence> <xs:element ref="driverClassName"/> <xs:element ref="url"/> <xs:element ref="userName"/> <xs:element ref="password"/> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="validate" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false"/> <xs:enumeration value="true"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="driverClassName"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/> <xs:enumeration value="lotus.jdbc.domino.DominoDriver"/> <xs:enumeration value="oracle.jdbc.driver.OracleDriver"/> <xs:enumeration value="org.gjt.mm.mysql.Driver"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="password" type="xs:int"/> <xs:element name="url"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="jdbc:domino:DB/Server"/> <xs:enumeration value="jdbc:microsoft:sqlserver://host:1433;DatabaseName=db"/> <xs:enumeration value="jdbc:mysql://javasoft"/> <xs:enumeration value="jdbc:oracle:thin:@host:1521:db"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="userName" type="xs:string"/> </xs:schema> java原代码: package com.sz.xml; import com.sz.xml.log.Log; import java.util.ArrayList; import java.util.List; import java.util.Iterator; import org.jdom.*; import org.jaxen.XPath; import org.jaxen.XPathSyntaxException; import org.jaxen.JaxenException; import org.jaxen.jdom.JDOMXPath; public class DatabaseXmlConfig { private String driverClassName; private String url; private String userName; private String password; private String fileName = "database-config.xml"; private final String nodeTag = "database-type"; private Document document; private XPath xpath; private String sxpath = "/database-config/database-type[@validate='true']"; public DatabaseXmlConfig() { getXmlData(fileName); } public DatabaseXmlConfig(String fileName) { if (fileName != null) this.fileName = fileName; getXmlData(fileName); } private void getXmlData(String fileName) { List list =null; document = GenerateXmlDom.GenerateDomFromXml(fileName, false); try{ xpath = new JDOMXPath(sxpath); Element element = (Element) xpath.selectSingleNode(document); if(element == null){ Log.log("DatabaseXmlConfig.getXmlData(String fileName) ","Err:can't find element; is null"); return ; }else{ driverClassName = element.getChild("driverClassName").getTextTrim(); url = element.getChild("url").getTextTrim(); userName = element.getChild("userName").getTextTrim(); password = element.getChild("password").getTextTrim(); } /* list = xpath.selectNodes(document); for(Iterator iter = list.iterator();iter.hasNext();){ } */ }catch(JaxenException je){ Log.log("DatabaseXmlConfig.getXmlData :",je.getMessage()); je.printStackTrace(); } } public String getDriverClassName() { return this.driverClassName; } public String getUrl() { return this.url; } public String getUserName() { return this.userName; } public String getPassword() { return this.password; } public static void main(String args[]){ DatabaseXmlConfig dg = new DatabaseXmlConfig(); System.out.println(dg.getDriverClassName()); System.out.println(dg.getUrl()); System.out.println(dg.getUserName()); System.out.println(dg.getPassword()); } }
|