[drp 3]读取Xml配置文件,连接数据库
导读:之前看一本XML的书,里面说到了对于XML的操作问题,但由于各方面的原因,一直没有总结。这次借着做项目,就总结总结对于XML文件的利用。主要是从配置数据库连接和保存数据这两方面来的。这篇博客介绍配置数据库连接,下篇介绍读取XML数据,保存至数据库。
一、建立XML文件
关于以上配置的内容,可以上网查一下。
二、读取Xml文件,设置jdbc的相关参数
<span style="font-family:KaiTi_GB2312;font-size:18px;">package com.angel.drp.util; import java.io.InputStream; import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; /**
* 解析
*@author AngelHHX
*
*/
public class XmlConfigReader { privatestatic XmlConfigReader instance = null; privateJdbcConfig jdbcConfig=new JdbcConfig(); privateXmlConfigReader() {
SAXReaderreader = new SAXReader();
InputStreamin =Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml");
try{
Documentdoc = reader.read(in);
//取得jdbc相关的配置
ElementdriverNameElt = (Element)doc.selectObject("/config/db-info/driver-name");
ElementurlElt = (Element) doc.selectObject("/config/db-info/url");
ElementuserNameElt = (Element)doc.selectObject("/config/db-info/user-name");
ElementpasswordElt = (Element) doc.selectObject("/config/db-info/password");
//设置jdbc相关的配置
jdbcConfig.setDriverName(driverNameElt.getStringValue());
jdbcConfig.setUrl(urlElt.getStringValue());
jdbcConfig.setPassword(passwordElt.getStringValue());
jdbcConfig.setUserName(userNameElt.getStringValue());
}catch (DocumentException e) {
e.printStackTrace();
}
} publicstatic synchronized XmlConfigReader getInstance() {
if(instance == null) {
instance= new XmlConfigReader();
}
returninstance;
} /**
* 返回jdbc相关配置
* @return
*/
publicJdbcConfig getJdbcConfig(){
returnjdbcConfig;
}
}
</span>
需要引入的jar包:
三、取得数据库的连接
<span style="font-family:KaiTi_GB2312;font-size:18px;">/**
* 取得Connection
* @return
* @throws ClassNotFoundException
*/
publicstatic Connection getConnection(){
Connectionconn=null;
try{
JdbcConfigjdbcConfig = XmlConfigReader.getInstance().getJdbcConfig();
Class.forName(jdbcConfig.getDriverName());
conn=DriverManager.getConnection(jdbcConfig.getUrl(),jdbcConfig.getUserName(), jdbcConfig.getPassword());
}catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
returnconn;
}
</span>
此处略去释放连接等几个方法。其后续的具体应用,就跟之前用SQLHelper一样。事实上之前用SQL Server的时候,后面也是从配置文件读取的连接信息。不过就是Oracle配置的东西多了点而已。
四、总结
不管做什么吧,数据持久化肯定是要有的。而连接数据库是第一项要务,之前都稀里糊涂的过来了,现在要明确它。后续还需要总结Hibernate的一些东西才行。多写代码多总结,少吃零食多睡觉。
[drp 3]读取Xml配置文件,连接数据库的更多相关文章
- 【XML配置文件读取】使用jdom读取XML配置文件信息
在项目中我们经常需要将配置信息写在配置文件中,而XML配置文件是常用的格式. 下面将介绍如何通过jdom来读取xml配置文件信息. 配置文件信息 <?xml version="1.0& ...
- DOM4J 读取XML配置文件进行数据库连接
介绍介绍DOM4J. 据说是非常优秀非常优秀的Java XML API(Dom4j is an easy to use, open source library for working ...
- spring读取xml配置文件(二)
一.当spring解析完配置文件名的占位符后,就开始refresh容器 @Override public void refresh() throws BeansException, IllegalSt ...
- Winform中实现读取xml配置文件并动态配置ZedGraph的RadioGroup的选项
场景 Winform中对ZedGraph的RadioGroup进行数据源绑定,即通过代码添加选项: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
- Spring如何读取xml配置文件的
我们通过一个小案例来看xml解析过程. 1. 导包 <dependencies> <!-- xml解析工具 --> <dependency> <groupId ...
- Log4Net读取XML配置文件及在代码中完成添加Logger操作
解决问题: 将log4net配置文件与app.config配置文件分开 手动读取log4net配置文件 手动创建logger 可将日志输出功能封装在类库中,应用程序引用时无需添加assembly引用及 ...
- cocos2dx中调用TinyXml读取xml配置文件 || cocos2d-x 中跨平台tinyxml读取xml文件方式
TiXmlDocument *doc = newTiXmlDocument; #if (CC_TARGET_PLATFORM ==CC_PLATFORM_ANDROID) //Android平台tin ...
- Spring读取xml配置文件的原理与实现
本篇博文的目录: 一:前言 二:spring的配置文件 三:依赖的第三方库.使用技术.代码布局 四:Document实现 五:获取Element的实现 六:解析Element元素 七:Bean创造器 ...
- EasyPlayerPro Windows播放器读取xml配置文件中的特殊字符问题
问题被反馈 今日一客户反馈说播放不了带用户名密码的流, 奇怪,这个问题不存在啊-,按照客户的说法, 是将url地址保存在配置文件中,然后再打开EasyPlayerPro运行: 问题复现 在EasyPl ...
随机推荐
- 在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)
http://www.cyqdata.com/cnblogs/article-detail-35876#
- storm的作业单元:Topology
Storm系统的数据处理应用单元,是被打包的被称为Topology的作业. 它是由多个数据处理阶段组合而成的,而每个处理阶段在构造时被称为组件(Component),在运行时被称为任务. 那么,组件根 ...
- matlab R2016b 设置界面为英文
对于matlab的使用,最好还是使用英文好.这样既能让你熟悉直接的英文解释,也能学习一下英语. 对于中文版的matlab,默认的Matlab安装是中文,所以这里存在安装matlab后设置语言的需要. ...
- OC错误
- php 设置一个函数的最大运行时间
如何防止一个函数执行时间过长呢?在PHP里可以用pcntl时钟信号+异常来实现 declare(ticks = 1); function a() { sleep(10); echo "a f ...
- JAVA算数运算符
算数运算符 序号 算数运算符 含义用法 特殊含义用法 1 + 加法 字符串连接 2 - 减法 3 * 乘法 4 / 除法 5 % 取余 实例: public class Test{ p ...
- Zend Guard Run-time support missing问题的解决
Zend Guard不仅可以实现对PHP应用的脚本进行加密保护和对PHP应用的产品进行商业许可证管理,还可以为许多软件生产商.IT服务提供商提供完善的加密和安全的产品发布系统. 虽然现在可以成功加密p ...
- winform窗体的关闭与资源的释放
单纯的this.Dispose(); this.Close();有时候并不能释放出所用资源.因为Dispose()方法,虽然能释放当前窗体的资源,却不能强制结束循环, 要想强制突出当前程序要用:Sy ...
- JAVA中抽象类的一些总结
抽象类和普通类一样,有构造函数.抽象类中有一些属性,可以利用构造方法对属性进行初始化.子类对象实例化的时候先执行抽象类的构造,再执行子类构造. 抽象类不能用final声明.因为抽象类必须有子类继承,所 ...
- HDU 5521 [图论][最短路][建图灵感]
/* 思前想后 还是决定坚持写博客吧... 题意: n个点,m个集合.每个集合里边的点是联通的且任意两点之间有一条dis[i]的边(每个集合一个dis[i]) 求同时从第1个点和第n个点出发的两个人相 ...