




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粤海地理竞赛试题及答案
- 沙滩弹唱面试题及答案
- 理解纺织品生产全过程的质量管理试题及答案
- 广告设计师证书考试创意展示试题及答案
- 科技武器考试题及答案
- 健康领域测试题及答案
- 2024年纺织设计师考点解析试题及答案
- 电话客服考试试题及答案
- 助理广告师项目执行能力试题及答案
- 2024国际设计师考试心得体会试题及答案
- 导管护理相关知识
- 上海2025年上海交通大学医学院招聘72人笔试历年参考题库附带答案详解
- DB37-T 5061-2024 住宅小区供配电设施建设标准
- GB/T 45135-2024钛合金板材超塑成形和扩散连接件通用技术规范
- (2025)时事政治题库(含参考答案)
- 【含听力9英一模】合肥市蜀山区2024年中考一模英语
- 保利拍卖行合同模板
- 2025年中国融通农发社会招聘笔试参考题库含答案解析
- 养老院护理员培训制度
- 无人机组装与调试 课件 项目一 多旋翼无人机组装调试
- 公司安全生产事故隐患内部报告奖励工作制度
评论
0/150
提交评论