- 浏览: 415536 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (202)
- Oracle (35)
- MsSQL (10)
- MySQL (8)
- Jsp (7)
- Java 基础 (21)
- 零星点缀 (20)
- PowerDesigner (3)
- dotNet (5)
- Hibernate (8)
- 搜索技术 (3)
- Linux (18)
- jQuery (4)
- POI/excel/word (2)
- javascript (6)
- PHP (4)
- JSTL (3)
- winows 操作系统 (6)
- HTML基础 (2)
- 网络兼职 (3)
- spring (7)
- 人生 (2)
- 网络协议之Http (3)
- JDBC (1)
- FSO(FileSystemObject)技术 (3)
- css样式 (1)
- EnterpriseDb (2)
- VMware (1)
- Android (1)
- 数据转换工具=》 (1)
- Oracle-->statspack (2)
- Oracle==>性能 (1)
- Greenplum (1)
- 库的转换 (1)
- DOS (1)
最新评论
-
青春的、脚步:
xingmei_ok 写道解密失败。。。。原始:aMD5后:0 ...
java的MD5加密、解密 -
xingmei_ok:
New_Mao_Er 写道看着标题我就蛋疼了,md5 是一个摘 ...
java的MD5加密、解密 -
New_Mao_Er:
看着标题我就蛋疼了,md5 是一个摘要算法,是无法解密的,如果 ...
java的MD5加密、解密 -
xingmei_ok:
解密失败。。。。
原始:a
MD5后:0cc175b9c0f ...
java的MD5加密、解密 -
yinxueyuan122:
[b][/b][size=xx-small][/siz ...
java的MD5加密、解密
dom4j是一种解析XML文档的开放源代码XML框架,本文就来介绍利用它完成学生对象的CRUD操作。dom4j API包含一个解析XML文档的工具,与W3C DOM API相比,使用dom4j所包含的解析器的好处是dom4j拥有本地的XPath支持。由于student.xml比较简单,我们这里并没有使用Xpath。所以我们只需将dom4j的jar包导入到classpath里面即可。好了,准备就绪,我们开始吧!
1.做一个DTO类Student
package com.wepull.student.model;
public class Student {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2.做一个查询条件类Cond
package com.wepull.student.model;
/**
* @author leno
* javabean风格的简单查询条件类
*/
public class Cond {
private String colName;
private String operation;
private String colValue;
public String getColName() {
return colName;
}
public void setColName(String colName) {
this.colName = colName;
}
public String getOperation() {
return operation;
}
public void setOperation(String operation) {
this.operation = operation;
}
public String getColValue() {
return colValue;
}
public void setColValue(String colValue) {
this.colValue = colValue;
}
}
3.做一个操作学生对象的DAO的接口
package com.wepull.student.model;
import java.util.List;
public interface IStudentDAO {
public void insert(Student stu);
public void edit(Student stu);
public void del(int id);
public Student findById(int id);
public int getRecords();
public List<Student> findAll();
public List<Student> findAll(int page,int pageSize);
public List<Student> findAll(List<Cond> cond,int page,int pageSize);
}
4. 做一个操作学生对象的DAO的实现类,该类就是重点
package com.wepull.student.model;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @author leno
* @version 1.0 操作student.xml的DAO类 利用dom4j对存储在xml格式文件上的数据进行CRUD
*/
public class StudentDAO implements IStudentDAO {
private String xmlPath = "student.xml";
private Document doc;
{
init();
}
public StudentDAO() {
}
public StudentDAO(String xmlPath) {
this.xmlPath = xmlPath;
}
/**
* 初始化工作,xml文件存在而读取,
* 不存在则按照一定格式在当前工程下创建
*/
public void init() {
File file = new File(xmlPath);
if (file.exists()) {
SAXReader reader = new SAXReader();
try {
doc = reader.read(file);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
doc = DocumentHelper.createDocument();
// 使用addDocType()方法添加文档类型说明
doc.addDocType("students", null, "student.dtd");
Element root = doc.addElement("students");
root.addComment("student's information!");
overRideXml();
}
}
public void del(int id) {
Element element = findElementById(id);
if (element != null) {
doc.getRootElement().remove(element);
overRideXml();
}
}
public void insert(Student stu) {
int currId = getMaxId() + 1;
Element root = doc.getRootElement();
Element student = root.addElement("student");
student.addAttribute("id", String.valueOf(currId));
Element name = student.addElement("name");
name.setText(stu.getName());
Element age = student.addElement("age");
age.setText(String.valueOf(stu.getAge()));
overRideXml();
}
public void edit(Student stu) {
int id = stu.getId();
Element element = findElementById(id);
if (element != null) {
element.element("name").setText(stu.getName());
element.element("age").setText(String.valueOf(stu.getAge()));
overRideXml();
}
}
@SuppressWarnings("unchecked")
public List<Student> findAll() {
List<Student> list = new ArrayList<Student>();
Element root = doc.getRootElement();
Iterator<Element> it = root.elementIterator("student");
while (it.hasNext()) {
Element element = it.next();
Student stu = new Student();
stu.setId(Integer.parseInt(element.attributeValue("id")));
stu.setName(element.elementText("name"));
stu.setAge(Integer.parseInt(element.elementText("age")));
list.add(stu);
}
return list;
}
@SuppressWarnings("unchecked")
public List<Student> findAll(int page, int pageSize) {
List<Student> list = new ArrayList<Student>();
Element root = doc.getRootElement();
List<Element> allList = root.elements();
int size = allList.size();
int maxPage = (size + pageSize - 1) / pageSize;
if (size == 0 || page < 1 || page > maxPage) {
return list;
}
int start = (page - 1) * pageSize;
int end = start + pageSize;
if (end > size) {
end = allList.size();
}
List<Element> eleList = allList.subList(start, end);
Iterator<Element> it = eleList.iterator();
while (it.hasNext()) {
Element element = it.next();
Student stu = new Student();
stu.setId(Integer.parseInt(element.attributeValue("id")));
stu.setName(element.elementText("name"));
stu.setAge(Integer.parseInt(element.elementText("age")));
list.add(stu);
}
return list;
}
/**
* 分页并且按照条件查询学生数据(有待加强和优化)
*/
@SuppressWarnings("unchecked")
public List<Student> findAll(List<Cond> conds, int page, int pageSize) {
List<Student> list = new ArrayList<Student>();
Element root = doc.getRootElement();
List<Element> allList = new ArrayList<Element>();
Iterator<Element> allIt = root.elementIterator();
while (allIt.hasNext()) {
Element element = allIt.next();
String id = element.attributeValue("id");
String name = element.elementText("name");
String age = element.elementText("age");
for (int i = 0; i < conds.size(); i++) {
Cond cond = conds.get(i);
String colName = cond.getColName();
String operation = cond.getOperation();
String colValue = cond.getColValue();
if ("id".equals(colName)) {
if (operation.equals("=")) {
if (!id.equals(colValue)) {
break;
}
}
} else if ("name".equals(colName)) {
if (operation.equals("=")) {
if (!name.equals(colValue)) {
break;
}
} else if (operation.equals("like")) {
if (!name.contains(colValue)) {
break;
}
}
} else if ("age".equals(colName)) {
if (operation.equals("=")) {
if (!age.equals(colValue)) {
break;
}
}
}
}
allList.add(element);
}
int size = allList.size();
int maxPage = (size + pageSize - 1) / pageSize;
if (size == 0 || page < 1 || page > maxPage) {
return list;
}
int start = (page - 1) * pageSize;
int end = start + pageSize;
if (end > size) {
end = allList.size();
}
List<Element> eleList = allList.subList(start, end);
Iterator<Element> it = eleList.iterator();
while (it.hasNext()) {
Element element = it.next();
Student stu = new Student();
stu.setId(Integer.parseInt(element.attributeValue("id")));
stu.setName(element.elementText("name"));
stu.setAge(Integer.parseInt(element.elementText("age")));
list.add(stu);
}
return list;
}
public Student findById(int id) {
Student stu = null;
Element element = findElementById(id);
if (element != null) {
stu = new Student();
stu.setId(id);
stu.setName(element.elementText("name"));
stu.setAge(Integer.parseInt(element.elementText("age")));
}
return stu;
}
public int getRecords() {
return doc.getRootElement().elements().size();
}
@SuppressWarnings("unchecked")
private Element findElementById(int id) {
Iterator<Element> it = doc.getRootElement().elementIterator("student");
while (it.hasNext()) {
Element element = it.next();
if (String.valueOf(id).equals(element.attributeValue("id"))) {
return element;
}
}
return null;
}
@SuppressWarnings("unchecked")
private int getMaxId() {
int maxId = 0;
Element root = doc.getRootElement();
Iterator<Element> it = root.elementIterator("student");
while (it.hasNext()) {
Element element = (Element) it.next();
String id = element.attributeValue("id");
if (maxId < Integer.parseInt(id)) {
maxId = Integer.parseInt(id);
}
}
System.out.println("maxId" + maxId);
return maxId;
}
/**
* 将修改后的Document对象写回到xml文件中
*/
private void overRideXml() {
/** 格式化输出,类型IE浏览一样 */
XMLWriter writer = null;
try {
writer = new XMLWriter(new FileOutputStream(xmlPath), OutputFormat
.createPrettyPrint());
writer.write(doc);
writer.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
IStudentDAO dao = new StudentDAO();
// System.out.println(dao.getRecords());
// for (int i = 0; i < 40; i++) {
// Student stu = new Student();
// //stu.setId(2);
// stu.setName("www");
// stu.setAge(233);
// dao.insert(stu);
// }
List<Cond> conds = new ArrayList<Cond>();
for (int i = 0; i < 1; i++) {
Cond cond = new Cond();
cond.setColName("name");
cond.setOperation("like");
cond.setColValue("1");
conds.add(cond);
}
List<Student> list = dao.findAll(conds, 1, 20);
Iterator<Student> it = list.iterator();
while (it.hasNext()) {
Student stu = it.next();
System.out.println(stu.getId() + " " + stu.getName());
}
}
}
5. 将如下student.dtd文件放在当前工程目录下
<!ELEMENT students (student*)>
<!ELEMENT student (name,age)>
<!ATTLIST student id CDATA #IMPLIED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
呵呵,我们的工作到此就完成了,最核心的代码在StudentDAO里面。大家看到,和我们平时写的DAO有很大不同,我们这里的StudentDAO就是对一份XML文件上的节点进行增删查改。我们还使用了一个接口IStudentDAO,这样我们就可以提供诸如jdbc访问数据库的DAO,hibernate访问数据库的DAO等多种数据访问的实现,也就是说,为了更加松散的耦合,我们提倡大家面向接口编程。大家边跑这个例子边认真体会一下dom4j的方便之处,当大家下次没有数据库时,再也不会愁眉苦脸,也就可以用xml文件来完成数据的存储啦。祝愿大家学习愉快!
1.做一个DTO类Student
package com.wepull.student.model;
public class Student {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2.做一个查询条件类Cond
package com.wepull.student.model;
/**
* @author leno
* javabean风格的简单查询条件类
*/
public class Cond {
private String colName;
private String operation;
private String colValue;
public String getColName() {
return colName;
}
public void setColName(String colName) {
this.colName = colName;
}
public String getOperation() {
return operation;
}
public void setOperation(String operation) {
this.operation = operation;
}
public String getColValue() {
return colValue;
}
public void setColValue(String colValue) {
this.colValue = colValue;
}
}
3.做一个操作学生对象的DAO的接口
package com.wepull.student.model;
import java.util.List;
public interface IStudentDAO {
public void insert(Student stu);
public void edit(Student stu);
public void del(int id);
public Student findById(int id);
public int getRecords();
public List<Student> findAll();
public List<Student> findAll(int page,int pageSize);
public List<Student> findAll(List<Cond> cond,int page,int pageSize);
}
4. 做一个操作学生对象的DAO的实现类,该类就是重点
package com.wepull.student.model;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @author leno
* @version 1.0 操作student.xml的DAO类 利用dom4j对存储在xml格式文件上的数据进行CRUD
*/
public class StudentDAO implements IStudentDAO {
private String xmlPath = "student.xml";
private Document doc;
{
init();
}
public StudentDAO() {
}
public StudentDAO(String xmlPath) {
this.xmlPath = xmlPath;
}
/**
* 初始化工作,xml文件存在而读取,
* 不存在则按照一定格式在当前工程下创建
*/
public void init() {
File file = new File(xmlPath);
if (file.exists()) {
SAXReader reader = new SAXReader();
try {
doc = reader.read(file);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
doc = DocumentHelper.createDocument();
// 使用addDocType()方法添加文档类型说明
doc.addDocType("students", null, "student.dtd");
Element root = doc.addElement("students");
root.addComment("student's information!");
overRideXml();
}
}
public void del(int id) {
Element element = findElementById(id);
if (element != null) {
doc.getRootElement().remove(element);
overRideXml();
}
}
public void insert(Student stu) {
int currId = getMaxId() + 1;
Element root = doc.getRootElement();
Element student = root.addElement("student");
student.addAttribute("id", String.valueOf(currId));
Element name = student.addElement("name");
name.setText(stu.getName());
Element age = student.addElement("age");
age.setText(String.valueOf(stu.getAge()));
overRideXml();
}
public void edit(Student stu) {
int id = stu.getId();
Element element = findElementById(id);
if (element != null) {
element.element("name").setText(stu.getName());
element.element("age").setText(String.valueOf(stu.getAge()));
overRideXml();
}
}
@SuppressWarnings("unchecked")
public List<Student> findAll() {
List<Student> list = new ArrayList<Student>();
Element root = doc.getRootElement();
Iterator<Element> it = root.elementIterator("student");
while (it.hasNext()) {
Element element = it.next();
Student stu = new Student();
stu.setId(Integer.parseInt(element.attributeValue("id")));
stu.setName(element.elementText("name"));
stu.setAge(Integer.parseInt(element.elementText("age")));
list.add(stu);
}
return list;
}
@SuppressWarnings("unchecked")
public List<Student> findAll(int page, int pageSize) {
List<Student> list = new ArrayList<Student>();
Element root = doc.getRootElement();
List<Element> allList = root.elements();
int size = allList.size();
int maxPage = (size + pageSize - 1) / pageSize;
if (size == 0 || page < 1 || page > maxPage) {
return list;
}
int start = (page - 1) * pageSize;
int end = start + pageSize;
if (end > size) {
end = allList.size();
}
List<Element> eleList = allList.subList(start, end);
Iterator<Element> it = eleList.iterator();
while (it.hasNext()) {
Element element = it.next();
Student stu = new Student();
stu.setId(Integer.parseInt(element.attributeValue("id")));
stu.setName(element.elementText("name"));
stu.setAge(Integer.parseInt(element.elementText("age")));
list.add(stu);
}
return list;
}
/**
* 分页并且按照条件查询学生数据(有待加强和优化)
*/
@SuppressWarnings("unchecked")
public List<Student> findAll(List<Cond> conds, int page, int pageSize) {
List<Student> list = new ArrayList<Student>();
Element root = doc.getRootElement();
List<Element> allList = new ArrayList<Element>();
Iterator<Element> allIt = root.elementIterator();
while (allIt.hasNext()) {
Element element = allIt.next();
String id = element.attributeValue("id");
String name = element.elementText("name");
String age = element.elementText("age");
for (int i = 0; i < conds.size(); i++) {
Cond cond = conds.get(i);
String colName = cond.getColName();
String operation = cond.getOperation();
String colValue = cond.getColValue();
if ("id".equals(colName)) {
if (operation.equals("=")) {
if (!id.equals(colValue)) {
break;
}
}
} else if ("name".equals(colName)) {
if (operation.equals("=")) {
if (!name.equals(colValue)) {
break;
}
} else if (operation.equals("like")) {
if (!name.contains(colValue)) {
break;
}
}
} else if ("age".equals(colName)) {
if (operation.equals("=")) {
if (!age.equals(colValue)) {
break;
}
}
}
}
allList.add(element);
}
int size = allList.size();
int maxPage = (size + pageSize - 1) / pageSize;
if (size == 0 || page < 1 || page > maxPage) {
return list;
}
int start = (page - 1) * pageSize;
int end = start + pageSize;
if (end > size) {
end = allList.size();
}
List<Element> eleList = allList.subList(start, end);
Iterator<Element> it = eleList.iterator();
while (it.hasNext()) {
Element element = it.next();
Student stu = new Student();
stu.setId(Integer.parseInt(element.attributeValue("id")));
stu.setName(element.elementText("name"));
stu.setAge(Integer.parseInt(element.elementText("age")));
list.add(stu);
}
return list;
}
public Student findById(int id) {
Student stu = null;
Element element = findElementById(id);
if (element != null) {
stu = new Student();
stu.setId(id);
stu.setName(element.elementText("name"));
stu.setAge(Integer.parseInt(element.elementText("age")));
}
return stu;
}
public int getRecords() {
return doc.getRootElement().elements().size();
}
@SuppressWarnings("unchecked")
private Element findElementById(int id) {
Iterator<Element> it = doc.getRootElement().elementIterator("student");
while (it.hasNext()) {
Element element = it.next();
if (String.valueOf(id).equals(element.attributeValue("id"))) {
return element;
}
}
return null;
}
@SuppressWarnings("unchecked")
private int getMaxId() {
int maxId = 0;
Element root = doc.getRootElement();
Iterator<Element> it = root.elementIterator("student");
while (it.hasNext()) {
Element element = (Element) it.next();
String id = element.attributeValue("id");
if (maxId < Integer.parseInt(id)) {
maxId = Integer.parseInt(id);
}
}
System.out.println("maxId" + maxId);
return maxId;
}
/**
* 将修改后的Document对象写回到xml文件中
*/
private void overRideXml() {
/** 格式化输出,类型IE浏览一样 */
XMLWriter writer = null;
try {
writer = new XMLWriter(new FileOutputStream(xmlPath), OutputFormat
.createPrettyPrint());
writer.write(doc);
writer.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
IStudentDAO dao = new StudentDAO();
// System.out.println(dao.getRecords());
// for (int i = 0; i < 40; i++) {
// Student stu = new Student();
// //stu.setId(2);
// stu.setName("www");
// stu.setAge(233);
// dao.insert(stu);
// }
List<Cond> conds = new ArrayList<Cond>();
for (int i = 0; i < 1; i++) {
Cond cond = new Cond();
cond.setColName("name");
cond.setOperation("like");
cond.setColValue("1");
conds.add(cond);
}
List<Student> list = dao.findAll(conds, 1, 20);
Iterator<Student> it = list.iterator();
while (it.hasNext()) {
Student stu = it.next();
System.out.println(stu.getId() + " " + stu.getName());
}
}
}
5. 将如下student.dtd文件放在当前工程目录下
<!ELEMENT students (student*)>
<!ELEMENT student (name,age)>
<!ATTLIST student id CDATA #IMPLIED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
呵呵,我们的工作到此就完成了,最核心的代码在StudentDAO里面。大家看到,和我们平时写的DAO有很大不同,我们这里的StudentDAO就是对一份XML文件上的节点进行增删查改。我们还使用了一个接口IStudentDAO,这样我们就可以提供诸如jdbc访问数据库的DAO,hibernate访问数据库的DAO等多种数据访问的实现,也就是说,为了更加松散的耦合,我们提倡大家面向接口编程。大家边跑这个例子边认真体会一下dom4j的方便之处,当大家下次没有数据库时,再也不会愁眉苦脸,也就可以用xml文件来完成数据的存储啦。祝愿大家学习愉快!
发表评论
-
MyEclipse 下Tomcat 项目的重命名
2010-09-07 09:30 1035为了开发方便,经常复制项目,但是又不能发布 :: 解决:项目 ... -
final关键字
2010-06-15 15:23 886Java的关键字final的含义存在着细微的区别,但通常它指的 ... -
static相关的内容(静态类、方法、变量、域,以及非静态的 学习
2010-06-15 15:06 1191static解析 http://www.iteye.com/ ... -
Java中重载与重写的区别
2010-06-15 14:03 1559Java中重载与重写的区别 ... -
Request对象的所有的方法
2010-06-15 12:45 1477Request对象的主要方法: setAttribute(S ... -
优化myeclipse的速度
2010-05-31 15:45 7511、去除不需要加载的模块 一个系统20%的功能往往能够满足8 ... -
MyEclipse 6.X集成svn的方式有两种
2010-05-31 15:37 1093在这里添加日志标题MyEclipse 6.X集成svn的方式基 ... -
Class bytes found but defineClass()failed for: 错误解决
2010-05-31 15:36 4089JDK 的版本不兼容 检查一下你编译环境的JDK版本和在容 ... -
计算两个日期之间相差的天数
2010-04-01 15:36 1886程序经过一系列处理,得到两个string类型的时间值,一个值的 ... -
java List分组和排序处理 Map 应用
2010-03-19 16:27 6545package com.common.main.mapAn ... -
Java正则表达式详解
2010-03-19 15:16 813覺得不錯收藏一下: http://blog.csdn.net/ ... -
Java如何遍历Map的所有的元素
2010-03-19 15:13 819JDK1.4中 Map map = new HashMap( ... -
Java线程之线程同步
2010-02-08 23:01 1014注:wait notify 都是Object的方法 同步(阻塞 ... -
使用javamail发信过程中的一些问题及解决方法(转)
2010-01-25 14:03 1161今天在弄javamail 发现下面这篇不错,转过来!! 使用j ... -
java 中发送邮件内容的各种基本生成方式
2010-01-25 13:56 2443/*通过JAVAMail发送邮件步骤: 1 构建Sessi ... -
Java加密和数字签名编程快速入门(转)
2010-01-21 13:36 1083最近在看加密的东东,觉得这个挺不错。转来学习~ ~ Java加 ... -
java的MD5加密、解密
2010-01-21 13:03 46352简单demo: import java.security.*; ... -
Java中使用MD5进行加密
2010-01-21 13:00 3019在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储 ... -
Java面试中遇到的一些经典算法题目
2009-12-07 22:44 9351.写一个方法,用一个for循环打印九九乘法表 Java代 ... -
System.exit(-1)和return 的区别
2009-11-10 16:21 1558对于只有一个单一方法的类或者系统来说是一样的,但是对于含有多个 ...
相关推荐
总结,DOM4j是一个强大且易用的Java XML处理库,能够方便地完成XML文件的CRUD操作。结合Servlet技术,可以轻松地将这些操作集成到Web应用中,为用户提供对XML数据的动态管理功能。了解并熟练掌握DOM4j,对于处理XML...
"2012-4-10 有关 xml dom4j的 crud"可能是另一个教程或者笔记,详细讲解了如何利用DOM4J进行XML的CRUD操作。这个文件可能包含了详细的步骤和代码示例,对于学习DOM4J非常有帮助。 "自己写的 dom4j的例子"很显然是...
使用DOM4J进行基本的CRUD(创建、读取、更新、删除)操作。 **查询操作** 假设我们要查询当前的`bookstore.xml`文件中所有的`book`元素,并获取每个`book`元素的`category`属性值以及`author`子元素中的文本信息:...
综上所述,这个案例通过Dom4j实现了XML文件的CRUD操作,并采用分层架构来组织代码,提高了代码的可读性和可维护性。在实际开发中,这样的设计模式能够帮助我们更好地管理复杂的应用程序,同时利用Dom4j的强大功能...
本资料主要围绕MyBatis的基本CRUD操作和动态SQL展开,同时包含了日志配置文件`log4j.properties`,用于帮助调试和优化应用程序的日志输出。 首先,MyBatis的核心概念是Mapper接口和XML映射文件。在创建CRUD操作时,...
本项目“学生信息CRUD Java代码”是针对初学者设计的,旨在帮助他们理解如何使用Java连接数据库,并进行学生信息的相关操作。下面我们将详细探讨这个项目涉及的知识点。 1. **Java编程基础**: - Java是一种面向...
在这个"XML实现的增删改查(CRUD)功能实例"中,我们将深入探讨如何使用DOM4J库来执行这些基本操作。 1. **增加(Create)**: 在XML中添加新的元素或属性属于创建操作。DOM4J提供了Element类,可以用来创建新的节点...
本项目“SWING做的学生信息CRUD”显然是一个基于Swing的系统,主要用于实现对学生信息的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作,这些是数据库管理中最基本的功能。 首先,让我们深入...
CRUD,全称为Create(创建)、Read(读取)、Update(更新)和Delete(删除),是数据库操作的基础,也是理解任何数据驱动应用的核心概念。在IT行业中,CRUD操作广泛应用于各种应用程序,从简单的数据库管理工具到...
在"extjs4mvc的crud"这个主题中,我们将深入探讨如何使用ExtJS 4的Model-View-Controller(MVC)架构来实现货物处理的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作。 首先,了解MVC模式是...
【Spring4-Struts2-Hibernate4 CRUD Demo (1)】是一个典型的Java Web开发示例,它演示了如何集成Spring4、Struts2和Hibernate4框架来实现CRUD(创建、读取、更新和删除)操作。这个项目是初学者学习企业级应用开发的...
4. 删除学生:用户选择删除学生时,Servlet会根据ID发送DELETE SQL,执行删除操作,然后通知JSP刷新数据列表。 除了基本的CRUD操作,你还需要考虑错误处理和安全性。例如,确保输入验证,防止SQL注入;使用预编译的...
《Express学生信息管理系统(CRUD)详解》 Express,作为Node.js框架的杰出代表,以其简洁易用的API和强大的功能赢得了广大开发者的青睐。在本项目“express学生信息管理系统(CRUD)”中,我们将深入探讨如何利用...
【Spring4-Struts2-Hibernate4 CRUD Demo_3】是一个综合性的开发示例,它展示了如何在Java Web应用程序中整合三大主流框架:Spring 4、Struts 2和Hibernate 4来实现CRUD(创建、读取、更新、删除)操作。这个Demo...
【Spring4-Struts2-Hibernate4 CRUD Demo_5】是一个综合性的开发示例,它展示了如何在Java Web应用程序中整合三大主流框架:Spring 4、Struts2和Hibernate4,进行基本的数据创建(Create)、读取(Read)、更新...
代码实现功能: 使用javaweb+jsp实现CRUD+Excel导入功能,无过多依赖。 1、完成学生信息的新增操作 2、完成学生信息的编辑操作 ...4、完成学生信息的删除操作 5、完成学生信息的导入操作 数据库使用的MySQL8.0
Springboot和Jpa实现学生CRUD操作代码实例 Springboot和Jpa是目前非常流行的技术栈,广泛应用于企业级项目中。该篇文章主要介绍了使用Springboot和Jpa实现学生CRUD操作代码实例,通过详细的示例代码,帮助读者快速...
在本资源"第四部分、Spring MVC完成CRUD.rar"中,我们主要探讨的是Spring MVC框架在实际项目开发中的应用,特别是在实现CRUD(创建、读取、更新、删除)操作中的详细过程。Spring MVC是Java Web开发中常用的一个模块...
【自虐1.2】Spring+MyBatis完成CRUD 在本文中,我们将深入探讨如何结合Spring框架和MyBatis轻量级持久层框架来实现数据库的基本操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete),简称为...
**Dapper.SimpleCRUD** 是一个针对Dapper扩展的库,专为简化常见的数据库操作而设计,如创建、读取、更新和删除(CRUD)数据。Dapper本身是一个轻量级、高效的.NET ORM(对象关系映射)工具,而**Dapper.SimpleCRUD*...