应用例子:
我们使用MVC模式开发一个简单的用户登陆注册的案例吧!作为一个简单的用户登陆注册,这里就直接使用XML文档当作小型数据库吧!
①搭建开发环境
- 导入相对应的开发包
- 创建程序的包名
- 创建xml文件,当做小型的数据库
②开发实体User
privateintid;
privateStringusername;
privateStringpassword;
privateStringemail;
privateDatebirthday;
//....各种setter、getter
③开发dao
- 这个根据业务来开发,我们是登陆注册,那应该提供什么功能呢?注册(外界传递一个User对象进来,我可以在XML文档多一条信息)。登陆(外界传递用户名和密码过来,我就在XML文档中查找有没该用户名和密码,如果有就返回一个User对象)
- 3.1登陆功能:
//外界传递用户名和密码进来,我要在XML文档中查找是否有该条记录
publicUserfind(Stringusername,Stringpassword){
//得到XML文档的流对象
InputStreaminputStream=UserImplXML.class.getClassLoader().getResourceAsStream("user.xml");
//得到dom4j的解析器对象
SAXReadersaxReader=newSAXReader();
try{
//解析XML文档
Documentdocument=saxReader.read(path);
//使用XPATH技术,查找XML文档中是否有传递进来的username和password
Elementelement=(Element)document.selectSingleNode("//user[@username='"+username+"' and@password='"+password+"']");
if(element==null){
returnnull;
}
//如果有,就把XML查出来的节点信息封装到User对象,返回出去
Useruser=newUser();
user.setId(Integer.parseInt(element.attributeValue("id")));
user.setUsername(element.attributeValue("username"));
user.setPassword(element.attributeValue("password"));
user.setEmail(element.attributeValue("email"));
//生日就需要转换一下了,XML文档保存的是字符串,User对象需要的是Date类型
SimpleDateFormatsimpleDateFormat=newSimpleDateFormat("yy-MM-dd");
Datebirthday=simpleDateFormat.parse(element.attributeValue("birthday"));
user.setBirthday(birthday);
//返回User对象出去
returnuser;
}catch(DocumentExceptione){
e.printStackTrace();
thrownewRuntimeException("初始化时候出错啦!");
}catch(ParseExceptione){
e.printStackTrace();
thrownewRuntimeException("查询的时候出错啦!");
}
}
- 做完一个功能,最好就测试一下,看有没有错误再继续往下写!
privateStringusername="zhongfucheng";
privateStringpassword="123";
@Test
publicvoidtestLogin(){
UserImplXMLuserImplXML=newUserImplXML();
Useruser=userImplXML.find(username,password);
System.out.println(user.getBirthday());
System.out.println(user.getEmail());
System.out.println(user.getId());
System.out.println(user.getUsername());
System.out.println(user.getPassword());
}
- 效果: