导读
:之前看一本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配置文件,连接数据库的更多相关文章

  1. 【XML配置文件读取】使用jdom读取XML配置文件信息

    在项目中我们经常需要将配置信息写在配置文件中,而XML配置文件是常用的格式. 下面将介绍如何通过jdom来读取xml配置文件信息. 配置文件信息 <?xml version="1.0& ...

  2. DOM4J 读取XML配置文件进行数据库连接

        介绍介绍DOM4J.    据说是非常优秀非常优秀的Java XML  API(Dom4j is an easy to use, open source library for working ...

  3. spring读取xml配置文件(二)

    一.当spring解析完配置文件名的占位符后,就开始refresh容器 @Override public void refresh() throws BeansException, IllegalSt ...

  4. Winform中实现读取xml配置文件并动态配置ZedGraph的RadioGroup的选项

    场景 Winform中对ZedGraph的RadioGroup进行数据源绑定,即通过代码添加选项: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...

  5. Spring如何读取xml配置文件的

    我们通过一个小案例来看xml解析过程. 1. 导包 <dependencies> <!-- xml解析工具 --> <dependency> <groupId ...

  6. Log4Net读取XML配置文件及在代码中完成添加Logger操作

    解决问题: 将log4net配置文件与app.config配置文件分开 手动读取log4net配置文件 手动创建logger 可将日志输出功能封装在类库中,应用程序引用时无需添加assembly引用及 ...

  7. cocos2dx中调用TinyXml读取xml配置文件 || cocos2d-x 中跨平台tinyxml读取xml文件方式

    TiXmlDocument *doc = newTiXmlDocument; #if (CC_TARGET_PLATFORM ==CC_PLATFORM_ANDROID) //Android平台tin ...

  8. Spring读取xml配置文件的原理与实现

    本篇博文的目录: 一:前言 二:spring的配置文件 三:依赖的第三方库.使用技术.代码布局 四:Document实现 五:获取Element的实现 六:解析Element元素 七:Bean创造器 ...

  9. EasyPlayerPro Windows播放器读取xml配置文件中的特殊字符问题

    问题被反馈 今日一客户反馈说播放不了带用户名密码的流, 奇怪,这个问题不存在啊-,按照客户的说法, 是将url地址保存在配置文件中,然后再打开EasyPlayerPro运行: 问题复现 在EasyPl ...

随机推荐

  1. jQuery Ajax 方法调用 Asp.Net WebService 以及调用aspx.cs中方法的详细例子

    一.jQuery Ajax 方法调用 Asp.Net WebService (引自Terry Feng) Html文件 <!DOCTYPE html PUBLIC "-//W3C//D ...

  2. SpringMVC参数类型转化错误调试方法

  3. Service代码示例

    package com.homily.training.service; import android.app.Service; import android.content.Intent; impo ...

  4. communication ports in DOS systems:

    : CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7,COM8, COM9, LPT1, LPT2, LPT3, LPT4, L ...

  5. __VA_ARGS__用法(转)

    自定义调试信息的输出 调试信息的输出方法有很多种,  例如直接用printf,  或者出错时使用perror, fprintf等将信息直接打印到终端上, 在Qt上面一般使用qDebug,而守护进程则一 ...

  6. hdu 3068 最长回文 manacher算法(视频)

    感悟: 首先我要Orz一下qsc,我在网上很难找到关于acm的教学视频,但偶然发现了这个,感觉做的很好,链接:戳戳戳 感觉这种花费自己时间去教别人的人真的很伟大. manacher算法把所有的回文都变 ...

  7. catalan---卡特兰数(小结)

    (关于卡特兰数的详细介绍)http://baike.baidu.com/view/2499752.htm 下面有练习的题目: 经过测试,_int64/long long 最大只能表示到33位,超过这个 ...

  8. JQ获取当前是第几个元素,以及直接选取第几个元素的方法

    一.获取当前是第几个元素的方法使用:$(this).index() 实例: $(function () { $('.menu li').mouseover(function () { alert($( ...

  9. sublimetext3 安装php语法检测

    打开控制台,install package 搜 sublimelinter 先安装sublimelinter本体 安装完以后再搜索一下,安装sublimelinter-php 接下来,打开prefer ...

  10. 标准化命名CSS类,持续更新

    放链接.持续化更新,以后可能会用上.https://github.com/zhangxinxu/zxx.lib.css/blob/master/zxx.lib.css