学生管理系统增删查基本操作(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 ...
随机推荐
- Android常用的图片加载库
Android常用的图片加载库 前言:图片加载涉及到图片的缓存.图片的处理.图片的显示等.四种常用的图片加载框架,分别是Fresco.ImageLoader. Picasso. Glide. Uni ...
- MFC string char cstring 类型转换
在Unicode环境下用以下转换: CString z_strCurtTime = _T(""); // 获取当前时间 CTime z_tCurTime = CTime::GetC ...
- python 面向对象 【进阶】
多态 多态跟python没有太大关系,因为python本身原生支持多态. def func(arg): #多态 print (arg) func(1) func(‘pand ...
- 24点-code1
#include <iostream> #include <string> #include <cstdlib> #include <cmath> us ...
- C++ Deque(双向队列)
C++ Deque(双向队列)是一种优化了的.对序列两端元素进行添加和删除操作的基本序列容器.它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的 ...
- Sql Server中利用ISNULL方法判断数字并预设值
1.ISNULL方法有两个参数,ISNULL(a,b),表达式含义为如果a为NULL,则设置该字段内容为b. 例如 table tab id sum 1 1 2 null select t.id,is ...
- 【Leetcode】【Medium】Unique Binary Search Trees
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...
- [问题记录]libpomelo的安装
1. 描述: 按照github上的操作完成 Windows in your libpomelo project root directory open git bash and type in mkd ...
- 1874 football game(三分法and method to compute the area of trianngle)
FInd the max area. 1. 三分法 2. NAN (not comparable with number) http://acm.timus.ru/problem.aspx?space ...
- 理解Underscore中的_.template函数
Underscore中提供了_.template函数实现模板引擎功能,它可以将JSON数据源中的数据对应的填充到提供的字符串中去,类似于服务端渲染的模板引擎.接下来看一下Underscore是如何实现 ...