学生管理系统增删查基本操作(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 ...
随机推荐
- 24_BlockingQueue接口
[BlockingQueue常见] [ ArrayBlockingQueue ] 基于数组的阻塞队列的实现,在ArrayBlockingQueue内部,维护了一个定长数组,以便缓存队列中的数据对象,其 ...
- VC添加文件到工程出错问题--FileTool.dll
原文:http://blog.csdn.net/bingdianlanxin/article/details/45112737 在我们的软件开发中,经常需要导入其他文件到我们的工程. 一般,我们会选择 ...
- html5自我总结
2017年7月30日 合抱之木,生于毫末.九层之台,起于累土.软件行业要熟记和训练的东西有很多,在此,写一下如何快速搭建html及自我见解(这里只介绍我自己用到的,还有部分存在但是用不到的就不讲解了) ...
- SQL Server ->> 斐波那契数列(Fibonacci sequence)
斐波那契数列(Fibonacci sequence)的T-SQL实现 ;WITH T AS ( AS BIGINT) AS curr, CAST(NULL AS BIGINT) AS prv UNIO ...
- centos7主机名的修改
在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(pretty).“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始 ...
- [使用经验]cocostudio UI编辑器的裁剪
日志-2015/03/16 描述:在程序使用UI编辑器导出文件的时候,该panel中大于panel的部分都没有显示出来,例如人物,一些特效等 原因:UI编辑器panel都勾上了裁剪 解决:在编辑器中把 ...
- 安装或删除Skype for business server组件的时候,报错"错误: 找不到 SQL 服务"
安装或删除Skype for business server组件的时候,到了安装所有并置数据库的时候,报错“错误: 找不到 SQL 服务.确保计算机 skype.centos.com 中安装了 SQL ...
- good pics
- Webpack笔记(三)——一款破产版脚手架的开发
前些天一直在学习入门Webpack,后来尝试了自己搭建一下一个简单的React开发环境,后来就在想可不可以自己写一个简单的脚手架,以免每次搭建一个简单的开发环境都需要自己一个个的配置,这样很麻烦,使用 ...
- UVa 10003 - Cutting Sticks(区间DP)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...