基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上银行账户管理系统》——构建项目数据库连接组件和测试(第6部分)_第1页
基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上银行账户管理系统》——构建项目数据库连接组件和测试(第6部分)_第2页
基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上银行账户管理系统》——构建项目数据库连接组件和测试(第6部分)_第3页
基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上银行账户管理系统》——构建项目数据库连接组件和测试(第6部分)_第4页
基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上银行账户管理系统》——构建项目数据库连接组件和测试(第6部分)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于Struts+Spring+JDBC架构的课程设计实训教学例如工程?网上银行账户管理系统?构建工程数据库连接组件和测试第6/6局部1.1.1 采用XML格式的配置文件代替属性配置文件 1、Java属性配置文件的方式所存在的问题 1缺少标准2缺少“层次性不能表达“复杂关系2、在工程中采用XML格式的配置文件代替属性配置文件1应用JDom实现对XML配置文件进行解析请大家回忆与JDom有关的内容!2在工程中添加JDom的系统包文件3、设计classNameCo文档类型定义文件1在工程中添加一个DTD文件2设计该DTD文件的内容<?xml version="1.0" e

2、ncoding="UTF-8"?><!ELEMENT classNames (className*)> <!ELEMENT className (classNameID|classNamePath)+> <!ELEMENT classNameID (#PCDATA)><!ELEMENT classNamePath (#PCDATA)>4、编写配置文件1添加l文件2设计该文件的内容目前为止的内容如下<?xml version="1.0" encoding="UTF-8"?>

3、;<!DOCTYPE classNames SYSTEM "classNameConfig.dtd"> <classNames><className><classNameID>JDBC_DBDriver_ClassName</classNameID><classNamePath>com.mysql.jdbc.Driver</classNamePath></className><className><classNameID>JDBC_DSN_URL</

4、classNameID><classNamePath>jdbc:mysql:/localhost:3306/webbank</classNamePath></className><className><classNameID>JDBC_dbUserName</classNameID><classNamePath>root</classNamePath></className><className><classNameID>JDBC_dbUserPassWor

5、d</classNameID><classNamePath>root</classNamePath></className><className><classNameID>JDBC_dbcp_maxActive</classNameID><classNamePath>10</classNamePath></className><className><classNameID>logImpleKind</classNameID><clas

6、sNamePath>1</classNamePath></className><className><classNameID>connectDBBean.className</classNameID><classNamePath></classNamePath></className></classNames>5、编写访问XML文件结点数据信息的接口ReadXMLClassNameJDOMInterface1请大家思考对XML文件进行解析的根本过程或者阶段2接口名称为ReadXML

7、ClassNameJDOMInterface,包名称为3设计该接口的内容package com.px1987.webbank.config;import java.util.HashMap;import org.jdom.Document;import com.px1987.webbank.exception.WebBankException;/* * 访问XML文件结点数据信息的接口*/public interface ReadXMLClassNameJDOMInterface /* * param xmlFileName XML文件名称 */public Document getXMLDo

8、cumentFromFile(String xmlFileName)throws WebBankException;/* * 返回XML文件的数据,用一个HashMap进行的封装 * return HaspMap<String,String> */public HashMap<String, String> getXMLTagData(Document oneDocument);6、添加ReadXMLClassNameJDOMInterface接口的实现类ReadXMLClassNameJDOMImple1添加实现类ReadXMLClassNameJDOMImple、并

9、且继承Observable类2设计该实现类package com.px1987.webbank.config;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;tion;import java.util.HashMap;import java.util.Iterator;import java.util.Observable;import org.jdom.Document;import org.jdom.Element;import org.jdom.JDOMExce

10、ption;import org.jdom.input.SAXBuilder;import com.px1987.webbank.exception.WebBankException;import com.px1987.webbank.factory.LogInfoFactory;public class ReadXMLClassNameJDOMImple extends Observable implements ReadXMLClassNameJDOMInterface public ReadXMLClassNameJDOMImple() public Document getXMLDoc

11、umentFromFile(String xmlFileName)throws WebBankException Document xmlDocument = null;try /获得org.jdom.input.SAXBuilder的一个实例,用来获得XML文档。参数中没有指定使用什么解析器,因此使用默认的解析器。SAXBuilder oneSAXBuilder= new SAXBuilder();/ 从文件构造一个Document,因为XML文件中已经指定了编码,所以这里不必了xmlDocument = oneSAXBuilder.build(new FileInputStream(new

12、 File(xmlFileName);/xmlDocument =/ oneSAXBuilder.build(ReadXMLClassNameJDOMImple.class.getResourceAsStream(xmlFileName);xmlDocument = oneSAXBuilder.build(this.getClass().getResource(xmlFileName); catch (FileNotFoundException e) int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logI

13、mpleKind");this.addObserver(LogInfoFactory.newLogInstance(logImpleKind);this.setChanged(); /注意要设置变化点notifyObservers(e);/当出现异常时将通知各个观察者throw new WebBankException("在ReadXMLClassNameJDOMImple类中出现了FileNotFoundException异常");catch (JDOMException e) int logImpleKind=Integer.parseInt(ClassNam

14、eConfig.getProperty("logImpleKind");this.addObserver(LogInfoFactory.newLogInstance(logImpleKind);this.setChanged(); /注意要设置变化点notifyObservers(e);/当出现异常时将通知各个观察者throw new WebBankException("在ReadXMLClassNameJDOMImple类中出现了JDOMException异常");catch (IOException e) int logImpleKind=Integ

15、er.parseInt(ClassNameConfig.getProperty("logImpleKind");this.addObserver(LogInfoFactory.newLogInstance(logImpleKind);this.setChanged(); /注意要设置变化点notifyObservers(e);/当出现异常时将通知各个观察者throw new WebBankException("在ReadXMLClassNameJDOMImple类中出现了IOException异常");return xmlDocument;public

16、HashMap<String,String> getXMLTagData(Document oneDocument) HashMap<String,String> classNameList = new HashMap<String,String>();Element root = oneDocument.getRootElement(); / 得到根元素/ 得到根元素所有子元素的集合java.util.List classNames = root.getChildren();Iterator classNamesItem = classNames.iter

17、ator();while (classNamesItem.hasNext() Element classNameElement = (Element) classNamesItem.next();/ 得到指定的classNameID子元素里的值Element classNameIDElement = classNameElement.getChild("classNameID"); String classNameID = classNameIDElement.getText();/ 得到指定的classNamePath子元素里的值Element classNamePath

18、Element = classNameElement.getChild("classNamePath"); String classNamePath = classNamePathElement.getText();/把获取的key、value放到HashMap中classNameList.put(classNameID, classNamePath);return classNameList;7、修改原来对Java属性文件进行解析的功能实现类ClassNameConfig类的代码1继续采用原来的ClassNameConfig类名称作为本类名称为了保持与原来的文件的一致性,

19、不再产生新的文件,而是在原来的文件根底上进行修改。2最终的功能实现代码package com.px1987.webbank.config;import java.io.IOException;import java.util.HashMap;import org.jdom.Document;import com.px1987.webbank.exception.WebBankException;public class ClassNameConfig private static HashMap<String, String> classNameList = null ;stati

20、c /该类一加载就读取指定的文件ReadXMLClassNameJDOMInterface readXMLClassNameJDOMImpl = null ;Document classNamesDocument = null ; readXMLClassNameJDOMImpl = new ReadXMLClassNameJDOMImple();try /将指定文件解析为JDOM文件的形式classNamesDocument= readXMLClassNameJDOMImpl.getXMLDocumentFromFile("/classNameConfig.xml");

21、catch (WebBankException e) e.printStackTrace();/获取XML文件中的数据,放到HashMap中classNameList=readXMLClassNameJDOMImpl.getXMLTagData(classNamesDocument);/* * 通过className的ID读取在XML文件中对应的类名 * param classNameID * return 类的全名 * throws IOException */public static String getProperty(String classNameID)String classNamePath = classNameList.get(classNameID);return

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论