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);        }    }


main中的删除:

删除学生            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
原创粉丝点击