- 浏览: 116389 次
- 性别:
- 来自: 南京
最新评论
-
zhchyun2008:
鱼崽崽 写道大家可以看看这个,里面有真正的实例:http:// ...
springmvc+MyBatis简单CRUD -
鱼崽崽:
大家可以看看这个,里面有真正的实例:http://43.249 ...
springmvc+MyBatis简单CRUD -
w-mamba:
适合初学者学习,蛮好…
ajax+jquery+json分页demo -
aa00aa00:
我笑了............................ ...
springmvc+MyBatis简单CRUD -
u010100704:
大哥。能不能加个项目结构图。再加个运行结果图,你这样写我都不知 ...
springmvc+MyBatis简单CRUD
转自:http://blog.csdn.net/lenotang/article/details/2809578
1.做一个DTO类Student
2.做一个查询条件类Cond
3.做一个操作学生对象的DAO的接口
4. 做一个操作学生对象的DAO的实现类,该类就是重点
5. 将如下student.dtd文件放在当前工程目录下
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; public class StudentDaoImpl implements IStudentDao { private String xmlPath = "student.xml"; private Document doc; { init(); } /** * 初始化工作,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("student", null, "student.dtd"); Element root = doc.addElement("students"); root.addComment("student's information"); overRideXml(); } } public StudentDaoImpl() { // TODO Auto-generated constructor stub } public StudentDaoImpl(String xmlPath) { } public void delete(int id) { // TODO Auto-generated method stub Element element = findElementById(id); if (null != element) { doc.getRootElement().remove(element); overRideXml(); } } public void edit(Student stu) { // TODO Auto-generated method stub int id = stu.getId(); Element element = findElementById(id); if (null != element) { element.element("name").setText(stu.getName()); element.element("age").setText(String.valueOf(stu.getAge())); overRideXml(); } } @SuppressWarnings("unchecked") public List<Student> findAll() { // TODO Auto-generated method stub List<Student> list = new ArrayList<Student>(); Element root = doc.getRootElement(); Iterator it = root.elementIterator(); while (it.hasNext()) { //TODO attributeValue和elementText区别 Element 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) { // TODO Auto-generated method stub 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 (0 == size || 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) { // TODO Auto-generated method stub 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() { // TODO Auto-generated method stub return doc.getRootElement().elements().size(); } public void insert(Student stu) { // TODO Auto-generated method stub 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(); } @SuppressWarnings("unchecked") public 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", "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; } private void overRideXml() { 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)>
发表评论
-
报文编号
2012-10-22 18:26 1467package com.huawei; import ... -
遍历所有xml节点
2012-10-22 18:25 4712package com.huawei.entity; ... -
DOM解析和SAX解析区别
2012-07-19 16:22 10611 操作: DOM:将所有文件读取到内存中,形成DOM树 ... -
java操纵XML
2012-07-19 16:12 1053import java.io.File; import ... -
SAX解析XML实例
2012-07-19 14:30 830student.xml: <?xml version ... -
DOM操作XML实例
2012-07-19 11:20 954student.xml: <?xml version ...
相关推荐
总结,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的强大功能...
本项目“学生信息CRUD Java代码”是针对初学者设计的,旨在帮助他们理解如何使用Java连接数据库,并进行学生信息的相关操作。下面我们将详细探讨这个项目涉及的知识点。 1. **Java编程基础**: - Java是一种面向...
本资料主要围绕MyBatis的基本CRUD操作和动态SQL展开,同时包含了日志配置文件`log4j.properties`,用于帮助调试和优化应用程序的日志输出。 首先,MyBatis的核心概念是Mapper接口和XML映射文件。在创建CRUD操作时,...
在这个"XML实现的增删改查(CRUD)功能实例"中,我们将深入探讨如何使用DOM4J库来执行这些基本操作。 1. **增加(Create)**: 在XML中添加新的元素或属性属于创建操作。DOM4J提供了Element类,可以用来创建新的节点...
本项目“SWING做的学生信息CRUD”显然是一个基于Swing的系统,主要用于实现对学生信息的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作,这些是数据库管理中最基本的功能。 首先,让我们深入...
在IT行业中,CRUD操作广泛应用于各种应用程序,从简单的数据库管理工具到复杂的Web应用,都离不开这四种基本操作。 1. **Create(创建)**: 创建是指在数据库中插入新的记录。例如,在一个用户管理系统中,当注册新...
《Express学生信息管理系统(CRUD)详解》 Express,作为Node.js框架的杰出代表,以其简洁易用的API和强大的功能赢得了广大开发者的青睐。在本项目“express学生信息管理系统(CRUD)”中,我们将深入探讨如何利用...
4. 删除学生:用户选择删除学生时,Servlet会根据ID发送DELETE SQL,执行删除操作,然后通知JSP刷新数据列表。 除了基本的CRUD操作,你还需要考虑错误处理和安全性。例如,确保输入验证,防止SQL注入;使用预编译的...
在本资源"第四部分、Spring MVC完成CRUD.rar"中,我们主要探讨的是Spring MVC框架在实际项目开发中的应用,特别是在实现CRUD(创建、读取、更新、删除)操作中的详细过程。Spring MVC是Java Web开发中常用的一个模块...
Springboot和Jpa实现学生CRUD操作代码实例 Springboot和Jpa是目前非常流行的技术栈,广泛应用于企业级项目中。该篇文章主要介绍了使用Springboot和Jpa实现学生CRUD操作代码实例,通过详细的示例代码,帮助读者快速...
代码实现功能: 使用javaweb+jsp实现CRUD+Excel导入功能,无过多依赖。 1、完成学生信息的新增操作 2、完成学生信息的编辑操作 ...4、完成学生信息的删除操作 5、完成学生信息的导入操作 数据库使用的MySQL8.0
在"extjs4mvc的crud"这个主题中,我们将深入探讨如何使用ExtJS 4的Model-View-Controller(MVC)架构来实现货物处理的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作。 首先,了解MVC模式是...
面向配置的CRUD框架,基于d2-admin的d2-crud,简化d2-crud配置,快速开发crud功能;支持远程数据字典,国际手机号校验,alioss、腾讯云cos、七牛云文件上传,省市区选择,权限管理,代码生成
【自虐1.2】Spring+MyBatis完成CRUD 在本文中,我们将深入探讨如何结合Spring框架和MyBatis轻量级持久层框架来实现数据库的基本操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete),简称为...
**Dapper.SimpleCRUD** 是一个针对Dapper扩展的库,专为简化常见的数据库操作而设计,如创建、读取、更新和删除(CRUD)数据。Dapper本身是一个轻量级、高效的.NET ORM(对象关系映射)工具,而**Dapper.SimpleCRUD*...
**JSP实现的CRUD操作详解** 在Web开发中,CRUD(Create, Read, Update, Delete)是最基本的数据操作,广泛应用于各种业务系统。本项目以JSP(JavaServer Pages)技术为核心,实现了对MySQL数据库的CRUD操作,旨在...
在本项目"C#用VS实现CRUD操作(作业)"中,我们将探讨如何使用Microsoft Visual Studio(VS)作为集成开发环境(IDE),结合C#语言来实现数据库的基本 CRUD(Create, Read, Update, Delete)操作。CRUD是任何数据...