eclipse 学生管理系统实现(dom4j实现)
导入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实现)相关推荐
- eclipse ssh连接git an error_JSP+SSH+Mysql实现的学生管理系统
项目简介 项目来源于:https://gitee.com/liu_xu111/javaSSH 本系统基于JSP+SSH+Mysql.在当代开发中,SSH的使用已经逐渐被SSM取代,但不代表我们不需要学 ...
- 学生管理系统html js,学生信息管理系统JS版(Eclipse).docx
学生信息管理系统JS版(Eclipse) 学生信息管理系统JSP版(Eclipse) 新建new->Dynamic Web Project->名字为StudentJSP. 准备工作 编写J ...
- 使用eclipse设计学生管理系统
使用eclipse设计学生管理系统 1.下载安装eclipse,建立一个java工程(File>>New>>Java Project>>Project Name: ...
- xml解析案例:一个简单的学生管理系统
1.创建一个xml文件,写一些学生信息 <?xml version="1.0" encoding="UTF-8"?><person> & ...
- ssh html项目,SSH项目-学生管理系统
SSH项目-学生管理系统 资源下载此资源下载价格为3D币,请先登录 资源文件列表 StudentManagent/.classpath , 979 StudentManagent/.myhiberna ...
- 基于JavaFX实现的数据库学生管理系统
0 前言 本博客所有内容和代码仅用来学习,无任何商用,如有侵权请联系我删除. 本文原创,创作不易,转载请注明!!! 源码如下: 度盘链接:https://pan.baidu.com/s/1M1nzoO ...
- 基于MySQL和JavaFX的学生管理系统
JavaFx学生管理系统 前言 项目GitHub网址 需求分析 工具准备 项目代码结构 数据库表设计 项目演示 前言 是这样的-那个夜黑风高的晚上,我高中同学给我发了这么一张图- 秒懂,遂着手,腾出 ...
- [附源码]计算机毕业设计小太阳幼儿园学生管理系统Springboot程序
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- [附源码]计算机毕业设计springboot小太阳幼儿园学生管理系统
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- java计算机毕业设计微留学学生管理系统源码+数据库+系统+lw文档+mybatis+运行部署
java计算机毕业设计微留学学生管理系统源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计微留学学生管理系统源码+数据库+系统+lw文档+mybatis+运行部署 本源码技 ...
最新文章
- Python可视化神器Yellowbrick使用
- EOS之记事本智能合约
- oracle统计信息收集的作用,oracle 11g 收集统计信息的新特点介绍
- View的生命周期方法和Activity生命周期方法关系
- 没有日志,只有MDF文件如何恢复数据库(转)[
- finally语句与return语句的执行顺序
- [c++基础] const char and static const char
- MySQL游标(cursor) 定义及使用
- 专访唐宇迪博士:我是如何迈入同济大学校园的?浅谈人工智能,未来数据挖掘和计算机视觉是风口
- 12.逻辑运算符与、或、非、双感叹号、双问号
- 再生核希尔伯特空间和核方法
- 网页上使用的输入法——Google Transliteration
- 当潮流突破次元空间,你能想象吗?欢迎来到一个叫“人物动漫化”的程序
- Nginx配置域名重定向/域名跳转
- 巨人网络18年春招java答案_巨人网络18春招Java开发笔试题,希望对大家能有帮助...
- AVL树简单实现及原理
- Effective Approaches to Attention-based Neural Machine Translation
- 教你用U盘安装原版Win7系统详细步骤
- 芸芸众生中的一个过客
- 新一代自助建站工具的领航者 - Tap . cn