学生管理系统增删查基本操作(dom4j/sax技术)
基本代码:
student.xml
<?xml version="1.0" encoding="UTF-8"?>
<student>
<stu>
<id>100</id>
<name>猴哥</name>
<age>20</age>
</stu>
<stu>
<id>200</id>
<name>超儿</name>
<age>25</age>
</stu>
<stu>
<id>300</id>
<name>唐僧</name>
<age>30</age>
</stu>
</student>
studentClass.java
package example5;
public class studentClass {
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;
}
public String toString() {
return "studentClass [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
student.java
package example5;
import java.io.FileOutputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
class student {
// 添加操作
public static void addStu(studentClass studentClass) throws Exception {
SAXReader saxreader = new SAXReader();
Document document = saxreader.read("src/example5/student.xml");
Element root = document.getRootElement();
Element stu = root.addElement("stu");
Element id1 = stu.addElement("id");
Element name1 = stu.addElement("name");
Element age1 = stu.addElement("age");
id1.setText(studentClass.getId());
name1.setText(studentClass.getName());
age1.setText(studentClass.getAge());
// 回写xml
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/example5/student.xml"), format);
xmlWriter.write(document);
xmlWriter.close();
}
// 删除操作
public static void deleteStu(studentClass studentClass) throws Exception {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("src/example5/student.xml");
Element root = document.getRootElement();
Element stu = root.element("stu");
root.remove(stu);
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/example5/student.xml"), format);
xmlWriter.write(document);
xmlWriter.close();
}
// 查询操作
//获取解析器
//获取document对象
//获取id,遍历id结点
//与传入的id进行比较,若是相等,获取父节点
//通过父节点取值传值
public static studentClass getStu(String id) throws Exception {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("src/example5/student.xml");
List<Node> list = document.selectNodes("//id");
studentClass student = new studentClass();
for (Node node : list) {
String id1 = node.getText();
if (id1.equals(id)) {
Element stu = node.getParent();
String name1 = stu.element("name").getText();
String age1 = stu.element("age").getText();
student.setId(id1);
student.setName(name1);
student.setAge(age1);
}
}
return student;
}
}
testStu.java
package example5;
class testStu {
public static void main(String[] args) throws Exception {
//testAdd();
/*studentClass stu=new studentClass();
student.deleteStu(stu);*/
getStu();
}
public static void testAdd() throws Exception {
studentClass stu = new studentClass();
stu.setId("300");
stu.setName("唐僧");
stu.setAge("30");
student.addStu(stu);
}
public static void getStu() throws Exception {
studentClass stu=student.getStu("200");
System.out.println(stu.toString());
}
}
学生管理系统增删查基本操作(dom4j/sax技术)的更多相关文章
- MongoDB的增删查改基本操作
MongoDB的增删查改基本操作 先决条件建库.建集合.建文档 连接mongo,如果连接不上什么连接拒绝,输入mongod命令,启动服务后 输入mongo show dbs 显示当前的所有的数据库 一 ...
- 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
- java基础: ArrayList集合应用, ArrayList增删改查详解,综合java基础实现学生管理系统,
1.ArrayList 集合和数组的区别 : 共同点:都是存储数据的容器 不同点:数组的容量是固定的,集合的容量是可变的 1.1 -ArrayList的构造方法和添加方法 public ArrayLi ...
- Elasticsearch使用系列-ES增删查改基本操作+ik分词
Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 一.安装可视化工具Kibana ES是一个NoSql数据库应用.和其他数据库 ...
- JDBC-简单的学生管理系统-增删改查
结构:三层架构--mvc 三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑. 比如将数据库操作代码封装到一层中,提供一些方法根据参数直 ...
- 学生管理系统开发代码分析笔记:jsp+java bean+servlet技术
1 序言 学习java web的时候很渴望有一份完整的项目给我阅读,而网上的大部分项目拿过来都无法直接用,好不容易找到了一个学生管理系统也是漏洞百出.在此,我将边修改边学习这份代码,并且加上完全的注释 ...
- Winform 学生管理系统增删改查
数据库: create database adonet go use adonet go create table xue ( code ), name ), sex bit, birth datet ...
- Sql Server的艺术(一) 视图的增删查改
视图是从一个或者多个表中查询数据的另一种方式.利用视图可以集中.简化定制数据库,同时还能保障安全. 视图其结构和数据是建立在对应的查询基础上的.和表一样,视图也是包括几个被定义的数据列和多个数据行,但 ...
- node.js+express+mongoose实现用户增删查改案例
node.js+express+mongodb对用户进行增删查改 一.用到的相关技术 使用 Node.js 的 express 框架搭建web服务 使用 express 中间件 body-parse ...
随机推荐
- EF+Oracle
一个小项目,设计到几十张表,但都是简单的增删改查,所以呢,想偷懒用EF. 结果,在.NET4.0下,死活都不行.最后在Oracle官方找到demo,上面清清楚楚的写着必须>NET4.5. 看着E ...
- VC添加文件到工程出错问题--FileTool.dll
原文:http://blog.csdn.net/bingdianlanxin/article/details/45112737 在我们的软件开发中,经常需要导入其他文件到我们的工程. 一般,我们会选择 ...
- Python语言下图像的操作方法总结
本章主要讲解 图像的读取方式.灰度化操作.图像转化为矩阵的方法 假设 strImgPath是图像的路径, img对象将图片读入到内存中 读取图像的第一种方式:skImage from skimage ...
- 【Python】区分List 和String
区分String和list String can't mutate 每次变更实质上开辟新的资源 List 可变更 警惕指针
- androidtab
https://github.com/H07000223/FlycoTabLayout tensorflow https://github.com/topics/tensorflow-examples ...
- FZEasyFile的使用
FZEasyFile的使用 https://github.com/jiecao-fm/FZEasyFile 操作沙盒文件很恶心,但用上FZEasyFile就变得简单了. 以前你需要这么做才行: NSF ...
- Redis设计与实现读后感
看了一下时间,现在是2018年8月22日14:28,看完最后一页内容之后,我简短的停留了一下,任思绪翻飞. redis设计与实现大概看了有12天左右,12天前,我的心里很乱,整个人都处于一种焦虑不安的 ...
- Node Sass could not find a binding for your current environment
Node环境从8升级到10后,Node Sass could not find a binding for your current environment 标签(空格分隔): Node Node环境 ...
- The FLARE On Challenge
上周才开始做这个CTF,用一周左右的时间完成了全部7道题.算是为即将到来的找工作进行热身和学习,下面记录一下遇到的问题和学到的东西,具体的解题过程就不详细描述了. challenge1 这道题用IDA ...
- hdu 6214 Smallest Minimum Cut[最大流]
hdu 6214 Smallest Minimum Cut[最大流] 题意:求最小割中最少的边数. 题解:对边权乘个比边大点的数比如300,再加1 ,最后,最大流对300取余就是边数啦.. #incl ...