JAVA开发思想与实例--模块化编程
来源:互联网 发布:jquery 数组 json 编辑:程序博客网 时间:2024/05/21 02:52
模块化编程,不能再在main函数中一锅端。
xml文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><exam> <student examid="222" idcard="111"> <name>张三</name> <location>沈阳</location> <grade>89</grade> </student> <student examid="444" idcard="333"> <name>李四</name> <location>大连</location> <grade>97</grade> </student></exam>
最先进行编写的模块是 Javabean
不同模块的程序写在不同的包里面
封装数据的实体一般为domain 域对象
DAO层一般有接口和该接口的实现类! 接口用于规范实现类! 实现类一般用于用于操作数据库! 一般操作修改,添加,删除数据库操作的步骤很相似,就写了一个公共类DAO类 ,修改,添加,删除数据库操作时 直接调用公共类DAO类!
dao(Data access object 数据访问对象)用于操作xml文档,StudentDao。 Javabean student封装Java数据。Main与用户打交道。
DAO共同的代码要抽取出来形成工具类。工具类所有的方法都是静态的。
utils则是提供工具方法,一般为静态,防止调用麻烦。
任何东西加字符串都是字符串 double+""
SHIFT+F6 重构-重命名
intellij的输出:
System.out.println; //输出后光标位于下一行
System.out.print; //输出光标位于本行
输入流:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String type = br.readLine();
type.equalsIgnoreCase("a") //不区分大小写的比较
xml的添加:
public void add(Student student){ try { Document document = XmlUtilsByJaxp.getDocument(); Element student_node = document.createElement("student"); student_node.setAttribute("examid", student.getExamid()); student_node.setAttribute("idcard", student.getIdcard()); Element name = document.createElement("name"); name.setTextContent(student.getName()); Element location = document.createElement("location"); location.setTextContent(student.getLocation()); Element grade = document.createElement("grade"); grade.setTextContent(student.getGrade()+""); student_node.appendChild(name); student_node.appendChild(location); student_node.appendChild(grade); document.getElementsByTagName("exam").item(0).appendChild(student_node); XmlUtilsByJaxp.write2Xml(document); } catch (Exception e) { throw new RuntimeException(e); }
从下往上的设计思想。
xml的查找:
通过准考证号(examid)来进行学生信息的查找。 examid是student的一个属性,通过匹配来进行查找。
public Student find(String examid){ try { Document document = XmlUtilsByJaxp.getDocument(); Student student = new Student(); NodeList list = document.getElementsByTagName("student"); for (int i=0;i<list.getLength();i++){ Element student_node = (Element) list.item(i); String s_examid = student_node.getAttribute("examid"); if (s_examid.equals(examid)){ //get student.setExamid(student_node.getAttribute("examid")); student.setIdcard(student_node.getAttribute("idcard")); student.setName(student_node.getElementsByTagName("name").item(0).getTextContent()); student.setLocation(student_node.getElementsByTagName("location").item(0).getTextContent()); student.setGrade(Double.parseDouble(student_node.getElementsByTagName("grade").item(0).getTextContent())); return student; } } return null; } catch (Exception e) { throw new RuntimeException(e); } }
找到返回该对象(student),没找到返回NULL。
xml的删除:
通过姓名来删除。
dao中的删除:
public void delete(String name){ try { Document document = XmlUtilsByJaxp.getDocument(); NodeList list = document.getElementsByTagName("name"); for (int i=0; i < list.getLength(); i++){ Node item = list.item(i); if (item.getTextContent().equals(name)){ item.getParentNode().getParentNode().removeChild(item.getParentNode()); XmlUtilsByJaxp.write2Xml(document); return; } } throw new RuntimeException("对不起,您要删除的学生不存在"); } catch (Exception e) { throw new RuntimeException(e); } }
删除学生 try { System.out.print("请输入删除的学生姓名:"); String name = br.readLine(); StudentDaoByDom4j dao = new StudentDaoByDom4j(); dao.delete(name); System.out.println("恭喜你,删除成功"); } catch (Exception e) { System.out.println(e.getMessage()); }
有时在开发时不允许改变,团队开发,只能实现方法,不能改变方法声明,异常也是一种返回。
0 0
- JAVA开发思想与实例--模块化编程
- 模块化编程思想
- 模块化开发思想
- 游戏开发思想-模块化
- JavaScript模块化编程思想演变
- perl 模块化编程实例
- ExtJs模块化编程实例
- 实例详解模块化编程
- java web开发编程思想
- 与您共读《Java 编程思想》
- Java编程思想21.2.1实例
- C语言模块化编程的思想
- 模块化编程思想及(C++)实践
- 前端开发模块化思想设计浅薄看法
- 模块化编程与模块化编辑器的设想
- java模块化开发
- 模块化思想
- Java编程思想-接口与内隐类(1)
- 进程&线程小结
- Python编写简易木马程序
- Oracle 简单操作手册
- 4-10 阶乘计算升级版 (20分)
- Spring实现AOP的4种方式
- JAVA开发思想与实例--模块化编程
- NDK started
- 黑马程序员一一递归、IO流
- Android_02_获取SD卡的可用容量
- NSOperation简介
- scikit-learn环境搭建
- http长连接和短连接-转
- list string互转
- 自定义函数、类