导入dom4j的jar包,这个上网搜jar包就可以免费下载滴
新建三个包,
在Student JAVA文件中

添加操作

package cn.xiaozhang.vo;public class Student {private String id;private String name;private String age;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}}

在StuService Java文件中

package cn.xiaozhang.stu;import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;import Dom4jUtils.Dom4jUtils;
import cn.xiaozhang.vo.Student;public class StuService {//增加public static void addstu(Student student) throws Exception{ //括号里面本来是参数,当参数很多的的时候,可以使用类的对象进行操作/**创建解析器*得到document*获取根节点*在根节点上面创建stu标签*在stu标签上面依次添加值*在ID name age上面依次添加值*回写 * */SAXReader saxReader = new SAXReader();Document document = saxReader.read(Dom4jUtils.PATH);Element root = document.getRootElement();Element stu = root.addElement("student");Element id = stu.addElement("id");Element name = stu.addElement("name");Element age = stu.addElement("age");//在id 上依次添加值id.setText(student.getId());name.setText(student.getName());age.setText(student.getAge());//回写Dom4jUtils.xmlWriters(Dom4jUtils.PATH, document);}
}

在Teststu Java文件中

package Teststu;import cn.xiaozhang.stu.StuService;
import cn.xiaozhang.vo.Student;public class Teststu {public static void main(String[] args) throws Exception {testadd();}//测试添加方法public static void testadd() throws Exception{Student stu = new Student();stu.setId("110000");stu.setName("xiaosi");stu.setAge("11111");StuService.addstu(stu);}
}

xml文件

<?xml version="1.0" encoding="UTF-8"?><stu> <p1 id2="aaaaaa"> <name id1="kkk">lisi</name>  <age>18</age> </p1>  <p1 id3="ss"> <name>zhansan</name>  <age>20</age> </p1>  <student><id>110000</id><name>xiaosi</name><age>11111</age></student> (添加了这一块)
</stu>

这个是我封装的方法
这样每次就可以少打些代码
封装了创建解析器 回写的方法

package Dom4jUtils;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
//封装方法
public class Dom4jUtils {//封装路径public static final String PATH="src/teo.xml";//返回Docuement //封装解析器,得到文件public static Document getDocument(String path){try {SAXReader saxReader = new SAXReader();Document document = saxReader.read(path);return document; } catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}//回写public static void xmlWriters(String path , Document document){try {OutputFormat format = OutputFormat.createPrettyPrint();XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(path), format);xmlWriter.write(document);xmlWriter.close();     } catch (Exception e) {e.printStackTrace();} }}

这个是我今天早上刚学的,路漫漫其修远兮。

删除操作
.xml

<?xml version="1.0" encoding="UTF-8"?><stu> <student> <id>11</id>  <name>xiaosan</name>  <age>11</age> </student> <student> <id>22</id>  <name>xiaosi</name>  <age>11</age> </student> <student> <id>33</id>  <name>xiaowu</name>  <age>11</age> </student>
</stu>

让我们删除id为11的student所有元素吧

stuService.java

//删除public static void delStu(String id) throws Exception{/** 1.创建解析器* 2.得到document* 3.获取到所有ID* 使用xpath //id 返回list* 4.遍历list集合* 5.判断集合里面的ID和传递的ID是否相同* 6.如果相同,吧ID所在的stu删掉* *///创建解析器SAXReader saxReader = new SAXReader();Document document = saxReader.read(Dom4jUtils.PATH);//获取所有idList<Node> list = document.selectNodes("//id");  //遍历listfor (Node node : list) {//node是每个id的元素//得到id的值String idv = node.getText();//判断idv和传递的id是否相同//得到p1结点if (idv.equals(id)) {Element student = node.getParent();//获取p1的父节点,通过父节点把他移除Element stu = student.getParent();stu.remove(student);}}Dom4jUtils.xmlWriters(Dom4jUtils.PATH, document);}}

Teststu.java

//测试删除方法public static void testdel() throws Exception{StuService.delStu("11");}

查询操作
StuService.java

/*查询* 1.创建解析器* 2.得到document文件* 3.获取所有id* 4返回的是list集合,遍历list集合* 5.得到每一个id的值* 7.判断id的值和传递的值是否相同* 8.如果相同,先获取id的父节点stu* 9.通过stu获取name age值* */public static Student getStu(String id){Document document = Dom4jUtils.getDocument(Dom4jUtils.PATH);//创建student对象Student student = new Student();List<Node> list = document.selectNodes("//id");for (Node node : list) {String s = node.getText(); if (s.equals(id)) {//得到父节点stuElement stu = node.getParent();String name1 = stu.element("name").getText();String age1 = stu.element("age").getText();student.setId(id);student.setName(name1);student.setAge(age1);}}return student;}

在Student.java中右键

生成这代码@Override public String toString() { return "Student [id=" + id + ", name=" + name + ", age=" + age + "]"; }

最后在Teststu中测试id为22的学生

//测试查询方法public static void testget() throws Exception{Student stu = StuService.getStu("22");System.out.println(stu.toString()); }

eclipse 学生管理系统实现(dom4j实现)相关推荐

  1. eclipse ssh连接git an error_JSP+SSH+Mysql实现的学生管理系统

    项目简介 项目来源于:https://gitee.com/liu_xu111/javaSSH 本系统基于JSP+SSH+Mysql.在当代开发中,SSH的使用已经逐渐被SSM取代,但不代表我们不需要学 ...

  2. 学生管理系统html js,学生信息管理系统JS版(Eclipse).docx

    学生信息管理系统JS版(Eclipse) 学生信息管理系统JSP版(Eclipse) 新建new->Dynamic Web Project->名字为StudentJSP. 准备工作 编写J ...

  3. 使用eclipse设计学生管理系统

    使用eclipse设计学生管理系统 1.下载安装eclipse,建立一个java工程(File>>New>>Java Project>>Project Name: ...

  4. xml解析案例:一个简单的学生管理系统

    1.创建一个xml文件,写一些学生信息 <?xml version="1.0" encoding="UTF-8"?><person> & ...

  5. ssh html项目,SSH项目-学生管理系统

    SSH项目-学生管理系统 资源下载此资源下载价格为3D币,请先登录 资源文件列表 StudentManagent/.classpath , 979 StudentManagent/.myhiberna ...

  6. 基于JavaFX实现的数据库学生管理系统

    0 前言 本博客所有内容和代码仅用来学习,无任何商用,如有侵权请联系我删除. 本文原创,创作不易,转载请注明!!! 源码如下: 度盘链接:https://pan.baidu.com/s/1M1nzoO ...

  7. 基于MySQL和JavaFX的学生管理系统

    JavaFx学生管理系统 前言 项目GitHub网址 需求分析 工具准备 项目代码结构 数据库表设计 项目演示 前言 是这样的-那个夜黑风高的晚上,我高中同学给我发了这么一张图- 秒懂,遂着手,腾出 ...

  8. [附源码]计算机毕业设计小太阳幼儿园学生管理系统Springboot程序

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  9. [附源码]计算机毕业设计springboot小太阳幼儿园学生管理系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  10. java计算机毕业设计微留学学生管理系统源码+数据库+系统+lw文档+mybatis+运行部署

    java计算机毕业设计微留学学生管理系统源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计微留学学生管理系统源码+数据库+系统+lw文档+mybatis+运行部署 本源码技 ...

最新文章

  1. Python可视化神器Yellowbrick使用
  2. EOS之记事本智能合约
  3. oracle统计信息收集的作用,oracle 11g 收集统计信息的新特点介绍
  4. View的生命周期方法和Activity生命周期方法关系
  5. 没有日志,只有MDF文件如何恢复数据库(转)[
  6. finally语句与return语句的执行顺序
  7. [c++基础] const char and static const char
  8. MySQL游标(cursor) 定义及使用
  9. 专访唐宇迪博士:我是如何迈入同济大学校园的?浅谈人工智能,未来数据挖掘和计算机视觉是风口
  10. 12.逻辑运算符与、或、非、双感叹号、双问号
  11. 再生核希尔伯特空间和核方法
  12. 网页上使用的输入法——Google Transliteration
  13. 当潮流突破次元空间,你能想象吗?欢迎来到一个叫“人物动漫化”的程序
  14. Nginx配置域名重定向/域名跳转
  15. 巨人网络18年春招java答案_巨人网络18春招Java开发笔试题,希望对大家能有帮助...
  16. AVL树简单实现及原理
  17. Effective Approaches to Attention-based Neural Machine Translation
  18. 教你用U盘安装原版Win7系统详细步骤
  19. 芸芸众生中的一个过客
  20. 新一代自助建站工具的领航者 - Tap . cn

热门文章

  1. 1.MySql驱动的jar包下载
  2. 数据库系统基础教程复习
  3. Hadoop学习之web查看HADOOP以及文件的上传和下载
  4. 2022尚硅谷docker学习笔记
  5. 获取美团商家评论词并生成词云
  6. JavaScript学习指南(非常详细)
  7. 小程序源码:首席省钱赚钱专家微信小程序源码下载,淘宝客 外卖侠 外卖cps 首席多多客 八合一小程序源码
  8. 《硅谷之火》书评:时代变迁中的硅谷摇滚明星
  9. C++课设——药品管理系统
  10. [附源码]Java计算机毕业设计SSM大众点评管理系统