查看完整版本: Commons-Digester Demo~使用xml配置rule

大饼先生 2008-5-28 14:18

Commons-Digester Demo~使用xml配置rule

偶就不解释意思了~~代码很简单,一看就明白的~~

DbConnection.xml(用于配置数据库连接的一些参数,这个是我们要用Digester解析的XML文件。)
[code]
<DbConnection>
  <DB_DRIVER>com.mysql.jdbc.Driver</DB_DRIVER>
  <DB_URL>
   jdbc:mysql://localhost:3306/test
  </DB_URL>
  <DB_USER>root</DB_USER>
  <DB_PASSWORD>123456</DB_PASSWORD>
</DbConnection>
[/code]

DbConnectionRule.xml(Digester解析的配置文件。)
[code]
<digester-rules>
<pattern value="DbConnection">
  <object-create-rule classname="com.somepackagename.DbConnection"/>   
    <call-method-rule pattern="DB_DRIVER" methodname="setDriverClass" paramcount="0"/>
    <call-method-rule pattern="DB_URL" methodname="setConnUrl" paramcount="0"/>
    <call-method-rule pattern="DB_USER" methodname="setUsername" paramcount="0"/>
    <call-method-rule pattern="DB_PASSWORD" methodname="setPassword" paramcount="0"/>
</pattern>
</digester-rules>

[/code]


Dbconnection.java(从XML映射到Java的Bean,为了简单起见,main也写在这里面,直接运行这个程序就行了)
[code]
package com.inspur.sms.pojo;
import java.io.File;
import java.net.URL;
import java.sql.*;
import org.apache.commons.digester.Digester;
import org.apache.commons.digester.xmlrules.DigesterLoader;
public class DbConnection {
private String driverClass;
private String connUrl;
private String username;
private String password;
private Connection conn = null;

private void createConnection(){
  try {
   Class.forName(driverClass);
   conn = DriverManager.getConnection(connUrl, username, password);
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
}
public Connection getConnnection(){
  createConnection();
  return conn;
}



public String getDriverClass() {
  return driverClass;
}
public void setDriverClass(String driverClass) {
  this.driverClass = driverClass;
}
public String getConnUrl() {
  return connUrl;
}
public void setConnUrl(String connUrl) {
  this.connUrl = connUrl;
}
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 static void main(String[] args) throws Exception{
  URL path = Thread.currentThread().getContextClassLoader().getResource("");
  File rulexml = new File(path.getPath() + "conf/smsconfig/DbConnectionRule.xml");  //------这行和下一行是我本地的xml在classpath下的路径。
  File configXML = new File(path.getPath() + "conf/smsconfig/DbConnection.xml");
  Digester digester = DigesterLoader.createDigester(rulexml.toURL());
  DbConnection conn = (DbConnection) digester.parse(configXML);  //--------------这一行就是上面配置运行的结果啦~Digester将xml文件映射成了Bean对象~
  System.out.println(conn.driverClass);
}

}

[/code]
页: [1]
查看完整版本: Commons-Digester Demo~使用xml配置rule