开发者学堂课程【XML入门 :学生管理系统实现-查询操作】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/37/detail/874
学生管理系统实现-查询操作
1、//查询根据 id 查询学生信息,
思想是得到这个 id,id 是属于哪一个标签,先获取所有的 id,判断 id 所在的标签里面的内容都可以得到。但是注意现在要返回一个值,返回学生信息,直接返回 student 对象,直接根据 id 查询。
public static Student getStu(String id) {
return null;
}
2、前两步都是一样的,直接复制即可。
id 值获取到,通过 stu 可以得到 name 值。
/*
* 1、 创建解析器
* 2、得到 document
*
* 3、获取到所有的 id
* 4、返回的是 list 集合,遍历 list 集合
* 5、得到每一个 id 的节点
* 6、id 节点的值
* 7、判断 id 的值和传递的 id 值是否相同
* 8、如果相同,先获取到 id 的父节点 stu
* 9、通过 stu 获取到 name age 值
*
**/
这里面不需要回写,因为是做查询操作,没有对内容进行修改。
3、前两步操作直接复制即可,有异常抛出去。
/ /创建解析器
SAXReader saxReader = new SAXReader();
/ / 得到 document
Document document = saxReader . read("src/ student. xml")
;
//获取所有的 id
List<Node> list = document . selectNodes("//id");
//遍历 list
for (Node node : list) {
/ /node 是每一个 id 节点
//得到 id 节点的值
String idv = node . getText() ;
//判断 id 是否相同
if(idv. equals(id)) {
id 相同就利用 id 获取父节点 stu
//得到 id 的父节点 stu
Element stu = node . getParent();
/ /通过 stu 获取 name 和 age
stu. element("name") getText();
这句话表示获取 name 的值,stu. element("name") 表示获取 name 的元素,getText(); 表示获取那么的值
String namev = stu. element ( " name").getText();
String agev = stu. element("age"). getText();
现在要访问一个对象,把 String namev = stu. element ( " name").getText();
这个直接设置到对象里面去,首先先要创建一个对象,不能创建在 idv 里面,不能返回,范围不行,创建在外面。
//创建 student 对象
Student student = new Student();
在里面设置它的值
/ /通过 stu 获取 name 和 age
String namev = stu. element ( " name").getText();
String agev = stu. element("age"). getText();
student. setid(idv);
student . setName( namev) ;
student. setAge(agev);
}
}
Return student ;
返回值不能写在里面,注意里面有一个循环,写在里面会出问题。所以通常在外面创建一个对象进行返回,这样返回的就是一个 student 对象。
4、调用一下。异常抛出去。
/ /测试查询方法
public static void testSelect() throws Exception {
Student stu = StuService . getStu("100");
这就可以依次获取 stu 里的值。
这里有一个方法,点击 source-Generate tostring()-select all。
就可以把值依次打印出来
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name +age="+ age + "]";
}
运行一下,
/ /测试查询方法
public static void testSelect() throws Exception {
Student stu = StuService. getStu("100");
System. out. println(stu. toString()) ;
}
就可以得到以下这种格式,以此显示出来。
[id=" + id + ", name=" + name +age="+ age + "]
5、testSelect();
执行看结果
Student[ id=100, name=zhangsan, age=20]
这就是查询的操作。