- 浏览: 118286 次
- 性别:
- 来自: 南京
-
最新评论
-
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 1488package com.huawei; import ... -
遍历所有xml节点
2012-10-22 18:25 4754package com.huawei.entity; ... -
DOM解析和SAX解析区别
2012-07-19 16:22 11051 操作: DOM:将所有文件读取到内存中,形成DOM树 ... -
java操纵XML
2012-07-19 16:12 1075import java.io.File; import ... -
SAX解析XML实例
2012-07-19 14:30 856student.xml: <?xml version ... -
DOM操作XML实例
2012-07-19 11:20 974student.xml: <?xml version ...
相关推荐
在这个"XML实现的增删改查(CRUD)功能实例"中,我们将深入探讨如何使用DOM4J库来执行这些基本操作。 1. **增加(Create)**: 在XML中添加新的元素或属性属于创建操作。DOM4J提供了Element类,可以用来创建新的节点...
在学生成绩管理系统中,Spring Boot主要负责后台逻辑处理,如学生信息的CRUD(创建、读取、更新、删除)操作,成绩的计算与分析,以及用户认证和授权。Spring Boot集成了Spring MVC,可以方便地处理HTTP请求,并提供...
【JAVA 学生管理系统-版本1(servlet3.0+bootstrap3.3.7+jsp)】是一个基于Java技术的Web应用,主要用于实现学生信息的创建、读取、更新和删除(CRUD)功能。这个系统利用了Servlet 3.0作为服务器端处理的核心,...
4. XML:学习XML的基本语法、DTD和Schema,以及使用Dom4j进行XML读写。 **项目案例** 在这一阶段,你将通过实际项目来巩固所学知识,如: - 学生管理系统:涉及用户登录、权限管理、学生信息的CRUD操作。 - 贪吃蛇...
- 日志框架如Log4j或SLF4J,用于记录系统运行日志,方便问题排查。 8. **单元测试和集成测试**: - 使用JUnit或Mockito进行Java代码的单元测试。 - 对API进行集成测试,确保前后端协同工作正常。 9. **部署与...
6. 日志管理:集成Log4j或Logback,记录系统运行日志,便于问题排查。 7. 异常处理:全局异常处理器,统一处理未捕获的异常,提升用户体验。 在JavaScript部分,可能使用了jQuery进行DOM操作,或者引入更现代的库如...
使用Log4j或Spring Boot的日志管理,记录系统运行状态和异常信息;使用JUnit进行单元测试,保证代码质量。 总的来说,这个毕业设计选题管理系统综合运用了多种技术,旨在提供一个高效、稳定且易于维护的平台,帮助...
这个系统由大二学生开发,体现了作者对编程基础和.NET技术的掌握。 【描述】中提到的几个关键点: 1. **代码结构严谨**:这表明该系统遵循良好的编程规范和设计模式,有利于代码的维护和扩展。在ASP.NET中,可能...
10. **LW(假设是Lightweight)**:可能是指轻量级框架或工具,用于减轻系统负担,提高性能,比如缓存技术(如Redis)或日志管理工具(如Log4j)。 总的来说,这个项目是一个综合性的实践案例,它涵盖了Web开发的多...