Dom4j+PLSQL XML文件导入数据库
来源:互联网 发布:有哪些工作 知乎 编辑:程序博客网 时间:2024/06/05 06:45
之前了解过一篇,是通过Dom4j读取XML文件http://blog.csdn.net/huo065000/article/details/47866461,由于一些原因,我们会遇到一些这样的情况 ,解析XML,将其放到数据库中保存,然后再适当的时候再读取出来显示,所以如何将我们的这次我们借助于dom4j来完成我们XML文件存入数据库的操作。
Step-1:
在进行操作之前,你必须要存在一个这样的数据库表来进行接收操作。对于数据库表的创建,我们可以采用PL SQL 直接导入sql操作,然后直接存入数据库:文件--打开--选择SQL Script,则可以导入写好的sql语句。这样想要的表则存入数据库中。
Step-2:
数据库表创建成功之后,则可以回到我们的工具(Eclipse/MyEclipse……)上,建立lib包,然后引入三个必要的jar包
- dom4j-1.6.1.jar(因为采用dom4j辅助存入,所以这个是必要的)
- jaxen-1.1-beta-6jar(使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是个不错的方法)
- ojdbc6.jar(和数据库打交道)
Step-3:
1、建立一个文件包,将我们需要保存到数据库的xml文件放入其中。
2、在src下建立一个包,在其中建立两个类,一个用来存放执行方法,另一个用来和数据库进行连接
Step-4:
一切准备工作完成之后,就可以实行填充工作了,首先Until中添加数据库连接操作:
/** * @ClassName: DbUtil * @Description: 封装数据库常用操作 * @author: HuoYaJing * @date:2015年10月6日 下午6:51:42 */public class DbUtil {/** * @throws SQLException * @Title: getConnection * @Description: 取得Connection * @param @return * @return Connection * @throws */public static Connection getConnection() {// 加载驱动,使用反射来实现Connection conn = null;try { //驱动连接 Class.forName("oracle.jdbc.driver.OracleDriver");// 连接 String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCLE"; String username = "C##drp1"; //连接数据库的用户名 String password = "drp1"; //连接数据库的密码 conn = DriverManager.getConnection(url, username, password); //进行连接} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}return conn;}TestXMLImport中进行操作:
public static void main(String[] args) throws SQLException {// TODO Auto-generated method stub//执行插入的SQL语句String sql="insert into t_xml(NUMERO, REPOSICION, NOMBRE, TURNOS) values (?, ?, ?, ?)";Connection conn = null;PreparedStatement pstmt = null;try {conn = DbUtil.getConnection();pstmt = conn.prepareStatement(sql);//读取xml文件存放的路径Document doc=new SAXReader().read(new File("E:\\提高班学习资料\\接口管理系统\\Source\\test_xmlImport\\xml\\test01.xml"));//查找对应的信息,从XMl中找对应的层层关系List itemList= doc.selectNodes("/ACCESOS/item/SOCIO");//遍历for(Iterator iter=itemList.iterator();iter.hasNext();){Element el=(Element) iter.next();//使用Element的elementText属性取值,将值一一取出来String numero=el.elementText("NUMERO");String reposicion=el.elementText("REPOSICION");String nombre=el.elementText("NOMBRE");//返回集合List turnosList=el.elements("TURNOS");StringBuffer sbsString=new StringBuffer();//第二层循环,同理将值一一取出来赋值给变量sbsStringfor(Iterator iter1=turnosList.iterator();iter1.hasNext();){Element turnosElt=(Element)iter1.next();String lu=turnosElt.elementText("LU");String ma=turnosElt.elementText("MA");String mi=turnosElt.elementText("MI");String ju=turnosElt.elementText("JU");String vi=turnosElt.elementText("VI");String sa=turnosElt.elementText("SA");String doo=turnosElt.elementText("DO");sbsString.append(lu + "," + ma + "," + mi + "," + ju + "," + vi + "," + sa + "," + doo);}//通过pstmt赋值pstmt.setString(1, numero);pstmt.setString(2, reposicion);pstmt.setString(3,nombre);pstmt.setString(4, sbsString.toString());pstmt.addBatch();}pstmt.executeBatch();//提示System.out.println("将XML导入数据库成功"); } catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{//关闭DbUtil.close(pstmt);DbUtil.close(conn);}}工作完成,只要对其进行单元测试在console输出框中输出:
最后看我们的数据库信息:
操作完成。对于操作的部分其实就是通过一一遍历读取的操作将其值赋值,通过PreparedStatement(预处理执行语句)操作将numero,reposicion,nombre,sbsString作为4个字段名,将值保存到数据库中的操作。
1 0
- Dom4j+PLSQL XML文件导入数据库
- 【DRP】采用dom4j完成XML文件导入数据库
- DRP中利用dom4j完成XML文件导入数据库
- [导入] xml文件解析-DOM4J
- PLSQL导入csv文件到数据库
- 【java】xml文件表建立及读取环境搭建并采用DOM4J完成XML文件导入到数据库
- PLSQL导入导出数据库
- PLSQL导入导出数据库
- PLSQL导入导出数据库
- PLSQL导入导出数据库
- PLSQL导入导出数据库
- PLSQL导入导出数据库
- PLSQL导入导出数据库
- PLSQL导入导出数据库
- PLSQL导入导出数据库
- PLSQL导入导出数据库
- PLSQL 导入导出数据库
- plsql导入导出数据库
- LeetCode----Implement Queue using Stacks
- MFC修改空间ID值
- 每天学一点flex(5):DividedBox和拖拽监听
- webApplicationContext 与servletContext
- 详解哈希算法、哈希表
- Dom4j+PLSQL XML文件导入数据库
- struts2 的form 标签theme属性
- 关于Mac中库文件和包含文件搜索路径
- hdu2317 Nasty Hacks
- 贴一个高精加= =纪念某道有毒的题
- 初始化bf518中断
- hdu4300Clairewd’s message kmp
- 小岛场景搭建
- 使用Android Studio进行NDK开发