XML为数据库进行增删改查(实例)
//增删改查文件
package xml2;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.xml.sax.XMLReader;
public class Dom4jReadExmple {
public File file =new File(System.getProperty("user.dir")+File.separator+"dd"+File.separator+"hy.xml");
//遍历所有
public void getSelectedNodeValue(List<Student> list){
if(!file.exists()){
System.out.println("文件不存在");
}
SAXReader saxReader = new SAXReader();
try {
Document document= saxReader.read(file);
Element rootElement= document.getRootElement();
Iterator iterator=document.selectNodes("//student").iterator();
while(iterator.hasNext()){
Student student = new Student();
College college = new College();
Element elem =(Element) iterator.next();
student.setAge(Integer.parseInt(elem.attributeValue("age")==null?"0":elem.attributeValue("age")));
student.setName(elem.element("name").getText());
college.setName(elem.element("college").getText());
college.setLeader(elem.element("college").attributeValue("leader"));
student.setCollege(college);
student.setTelephone(elem.elementText("telephone"));
student.setNote(elem.elementText("notes"));
System.out.println(student.getName());
System.out.println(student.getAge());
System.out.println(student.getTelephone());
System.out.println(student.getCollege().getName());
System.out.println(student.getCollege().getLeader());
System.out.println(student.getNote());
System.out.println("============================");
list.add(student);
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//插入数据
public void insertIntoXML(Student stu){
try {
if(!file.exists()){
file.createNewFile();
PrintWriter writer =new PrintWriter(new FileOutputStream(file));
writer.write("<?xml version='1.0' encoding='UTF-8'?>");
writer.write("\n");
writer.write("<all>");
writer.write("\n");
writer.write("</all>");
writer.flush();
writer.close();
// 或
// BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
// bufferedWriter.write("<?xml version='1.0' encoding='UTF-8'?>");
// bufferedWriter.write("\n");
// bufferedWriter.write("<all>");
// bufferedWriter.write("\n");
// bufferedWriter.write("</all>");
// bufferedWriter.flush();
// bufferedWriter.close();
}
Document document= DocumentHelper.createDocument();
Element root=document.addElement("students");
root.addComment("所有部门信息");
Element element =root.addElement("student");
element.addAttribute("id", stu.getId().toString());
element.addElement("age").addText(stu.getAge().toString());
element.addElement("name").addText(stu.getName());
Element element2 =element.addElement("college");
element2.addText(stu.getCollege().getName());
element2.addAttribute("leader", stu.getCollege().getLeader());
element.addElement("telephone").addText(stu.getTelephone());
element.addElement("notes").addText(stu.getNote());
SAXReader saxReader = new SAXReader();
Document document2=saxReader.read(file);
if(null!=document2){
List lists=document2.selectNodes("//student");
if(null!=lists&&lists.size()>0){
Iterator iterator =lists.iterator();
while(iterator.hasNext()){
Element element4 =(Element) iterator.next();
Element element5 =root.addElement("student");
element5.addAttribute("id", element4.attributeValue("id"));
element5.addElement("age").addText(element4.elementText("age"));
element5.addElement("name").addText(element4.elementText("name"));
element5.addElement("college").addText(element4.elementText("college")).addAttribute("leader", element4.element("college").attributeValue("leader"));
element5.addElement("telephone").addText(element4.elementText("telephone"));
element5.addElement("notes").addText(element4.elementText("notes"));
}
}
}
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(file));
xmlWriter.write(document);
xmlWriter.close();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 通过id删除
public void deleteFormXml(int id){
SAXReader saxReader = new SAXReader();
try {
Document document=saxReader.read(file);
Iterator iterator=document.selectNodes("//student[@id]").iterator();
while(iterator.hasNext()){
Element element =(Element) iterator.next();
if(element.attributeValue("id").equals(String.valueOf(id))){
document.getRootElement().remove(element);
}
}
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(file));
xmlWriter.write(document);
xmlWriter.flush();
xmlWriter.close();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 修改对应id数据
public void editXML(Student stu){
SAXReader saxReader =new SAXReader();
try {
Document document =saxReader.read(file);
Iterator iterator=document.selectNodes("//student[@id]").iterator();
while(iterator.hasNext()){
Element element =(Element) iterator.next();
if(element.attributeValue("id").equals(String.valueOf(stu.getId()))){
element.element("name").setText(stu.getName());
element.element("age").setText(stu.getAge().toString());
element.element("college").setText(stu.getCollege().getName());
element.element("college").setAttributeValue("leader", stu.getCollege().getLeader());
element.element("telephone").setText(stu.getTelephone());
element.element("notes").setText(stu.getNote());
}
}
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(file));
xmlWriter.write(document);
xmlWriter.flush();
xmlWriter.close();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
XML为数据库进行增删改查(实例)的更多相关文章
- java:JSP(JSPWeb.xml的配置,动态和静态导入JSP文件,重定项和请求转发,使用JSP实现数据库的增删改查实例)
1.JSP的配置: <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- python链接oracle数据库以及数据库的增删改查实例
初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...
- Android学习---数据库的增删改查(sqlite CRUD)
上一篇文章介绍了sqlite数据库的创建,以及数据的访问,本文将主要介绍数据库的增删改查. 下面直接看代码: MyDBHelper.java(创建数据库,添加一列phone) package com. ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- Mybatis学习笔记(二) 之实现数据库的增删改查
开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...
- Android中Sqlite数据库进行增删改查
今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...
- Java操作数据库实现"增删改查"
本文主要讲解JDBC操作数据库 主要实现对MySql数据库的"增删改查" 综合概述: JDBC的常用类和接口 一 DriverManager类 DriverManage类 ...
- [译]聊聊C#中的泛型的使用(新手勿入) Seaching TreeVIew WPF 可编辑树Ztree的使用(包括对后台数据库的增删改查) 字段和属性的区别 C# 遍历Dictionary并修改其中的Value 学习笔记——异步 程序员常说的「哈希表」是个什么鬼?
[译]聊聊C#中的泛型的使用(新手勿入) 写在前面 今天忙里偷闲在浏览外文的时候看到一篇讲C#中泛型的使用的文章,因此加上本人的理解以及四级没过的英语水平斗胆给大伙进行了翻译,当然在翻译的过程中发 ...
- 用SpringBoot+MySql+JPA实现对数据库的增删改查和分页
使用SpringBoot+Mysql+JPA实现对数据库的增删改查和分页 JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述 ...
随机推荐
- Python一路走来 面向对象1
面向对象: 类,对象 函数放在类里,叫方法 封装 #如何调用 1. 创建对象, 类名() obj= Foo() 2. 通过对象去执行方法 obj.mail("leon@me.com" ...
- asp.net 中如何判断字符串中有几个逗号 (asp也通用)
如: 字符串 a="1,2,3"; 怎样判断a 中的逗号 有几个 len(a)-len(replace(a,",",""))
- Google机器学习笔记(七)TF.Learn 手写文字识别
转载请注明作者:梦里风林 Google Machine Learning Recipes 7 官方中文博客 - 视频地址 Github工程地址 https://github.com/ahangchen ...
- [转]学DSP、FPGA、ARM,哪个更有前途?
1.这世界真是疯了,貌似有人连FPGA原理是什么都不知道就开始来学习FPGA了. 2.DSP就是一个指令比较独特的处理器.它虽然是通用处理器,但是实际上不怎么“通用”.技术很牛的人可以用DSP做一台电 ...
- 设置ActioinBar 的背景色以及Title的字体颜色
//设置ActionBar背景 Drawable draw=this.getResources().getDrawable(R.drawable.actionbar_bg); getActionBar ...
- Qt读取ANSI格式文件——利用QTextCodec将其他编码格式转换为Unicode格式
Qt使用Unicode来表示字符串.但是通常需要访问一些非Unicode格式的字符串,例如打开一个GBK编码的中文文本文件,甚至一些非Unicode编码的日文,俄文等. Qt提供了QTextCodec ...
- 15款免费WiFi入侵破解安全测试工具
以下是的15款免费(接近免费)的WiFi网络入侵测试工具.这些工具将帮你发现流氓AP,弱Wi-Fi密码等安全隐患,在黑客光临之前把漏洞补上. 一.Vistumbler扫描器 Kismet是一个开源的W ...
- 六款主流免费网络嗅探软件wireshark,tcpdump,dsniff,Ettercap,NetStumbler
1.WireShark WireShark是一个开源免费的高性能网络协议分析软件,它的前身就是非常著名的网络分析软 件Ethereal.你可以使用它来解决网络疑难问题,进行网络协议分析,以及作为软件或 ...
- Jquery局部打印插件
局部打印插件 jquery.PrintArea.js js代码 (function ($) { var printAreaCount = 0; $.fn.printArea = fun ...
- pyQt事件处理
Qt事件处理01 Qt处理事件的第二种方式:"重新实现QObject::event()函数",通过重新实现event()函数,可以在事件到达特定的事件处理器之前截获并处理他们.这种 ...