`
dupengtao
  • 浏览: 32429 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

用户注册-总结2(Dao层)

阅读更多

package com.du.utils;
import java.io.FileOutputStream;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class XmlTool {
	
	private static String filepath;
	static{
		filepath=XmlTool.class.getClassLoader().getResource("users.xml").getPath();
		//filepath = XmlUtils.class.getClassLoader().getResource("users.xml").getPath();
	}
	//读取文档
	public static Document getDcument() throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = reader.read(filepath);
        return document;
    }
	//写入分档
	public static void write2Xml(Document document) throws IOException{
		OutputFormat format = OutputFormat.createPrettyPrint();
		format.setEncoding("UTF-8");
		XMLWriter writer = new XMLWriter(new FileOutputStream(filepath), format );
        writer.write( document );
        writer.close();
	}
}

 

注意:

1.要写入和读取xml 要用到dom4j开发包。

 

Dao层:

import java.text.SimpleDateFormat;
import java.util.Date;

import org.dom4j.Document;
import org.dom4j.Element;


import com.du.dao.UserDao;
import com.du.domain.Users;
import com.du.utils.XmlTool;

public class UserDaoImpl implements UserDao {

	// 存入user 到xml
	/*
	 * (non-Javadoc)
	 * 
	 * @see com.du.dao.impl.UserDao#add(com.du.domain.Users)
	 */
	public void add(Users user) {
		try {
			Document document = XmlTool.getDcument();
			Element root = document.getRootElement();
			Element e = root.addElement("user");
			e.setAttributeValue("id", user.getId());
			e.setAttributeValue("username", user.getUsername());
			e.setAttributeValue("password", user.getPassword());
			e.setAttributeValue("email", user.getEmail());
			e.setAttributeValue("birthday", user.getBirthday() == null ? null
					: user.getBirthday().toLocaleString());
			e.setAttributeValue("nickname", user.getNickname());

			XmlTool.write2Xml(document);

		} catch (Exception e) {
			// TODO Auto-generated catch block
			throw new RuntimeException(e);
		}

	}

	// 根据用户名和秘密查找出这个用户的所有信息
	/*
	 * (non-Javadoc)
	 * 
	 * @see com.du.dao.impl.UserDao#find(java.lang.String, java.lang.String)
	 */
	public Users find(String username, String password) {
		try {
			Document document = XmlTool.getDcument();
			Element e = (Element) document
					.selectSingleNode("//user[@username='" + username
							+ "' and @password='" + password + "']");
			if (e == null) {
				return null;
			}
			Users user = new Users();
			String date = e.attributeValue("birthday");
			if (date == null || date.equals("")) {
				user.setBirthday(null);
			} else {
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
				Date d = sdf.parse(date);
				user.setBirthday(d);
			}
			user.setId(e.attributeValue("id"));
			user.setNickname(e.attributeValue("nickname"));
			user.setEmail(e.attributeValue("email"));
			user.setUsername(username);
			user.setPassword(password);
			return user;
		} catch (Exception e) {
			new RuntimeException(e);
		}
		return null;
	}

	// 查询xml中是否有同 用户名的人
	// 用于判断是否可以添加到数据库(xml)
	/*
	 * (non-Javadoc)
	 * 
	 * @see com.du.dao.impl.UserDao#find(java.lang.String)
	 */
	public boolean find(String username) {
		try{
			Document document =XmlTool.getDcument();
			Element e = (Element) document.selectSingleNode("//user[@username='"+username+"']");
			if(e==null){
				return false;
			}
			return true;
		}catch (Exception e) {
			throw new RuntimeException(e);
		}
		
	}
}
 

注意:

1.不会写的时候看dom4j的开发文档中的快速入门

 

 

分享到:
评论

相关推荐

    用DAO实现的用户登录系统

    DAO(Data Access Object)模式是一种常见的软件设计模式,它用于封装对数据库的访问操作,将数据访问层与业务逻辑层分离,从而提高系统的可维护性和可扩展性。在这个"用DAO实现的用户登录系统"中,我们可以看到以下...

    一个dao模式的实验报告

    - 在WebRoot目录下创建了多个JSP文件,如`Emp_insert.jsp`、`Emp_insert_do.jsp`和`Emp_list.jsp`,分别用于用户注册信息输入、数据增加和查询显示。 3. **实验问题**: 在实验过程中,周媛娣遇到了一个问题:在...

    基于DAO的社团网站--只供学习参考

    在社团网站的背景下,Servlet可能用于处理用户的登录、注册、发布活动等业务逻辑。例如,一个“LoginServlet”会检查用户的用户名和密码,而“ActivityPostServlet”可能负责接收并处理用户提交的活动创建请求。 ...

    S2SH做的用户注册

    在用户注册场景中,Spring可能被用来管理数据库连接、事务控制、以及Service层和DAO层的bean实例化。 【知识点三】:Hibernate框架 Hibernate是一个持久化框架,简化了Java对象与数据库表之间的映射关系。在用户...

    注册/登录验证

    - **Service层和DAO层支持**:Service层处理用户名可用性检查,并通过DAO层查询数据库来确认用户名是否已经被其他用户注册。 #### 二、技术要点总结 ##### 技术栈 - **前端**: - HTML/CSS/JavaScript/jQuery:...

    SSH框架实现的用户注册功能(可运行)

    在用户注册功能中,Spring可以管理数据库连接、事务控制以及Service和DAO层的对象。AOP则用于实现通用功能,如日志记录、权限检查等,无需在每个方法中重复编写。 Hibernate作为ORM(对象关系映射)框架,使得Java...

    JSP登录(Struts+DAO+Mysql)

    总结来说,"JSP登录(Struts+DAO+Mysql)"项目是一个综合运用多种技术的实战案例,涵盖了Web开发的核心知识,包括前端交互、后端逻辑处理、数据库操作以及安全措施,对于学习和理解Web开发流程具有很高的价值。...

    jsp实现的用户登录模块

    在实际项目中,这可能是`register.jsp`(用于用户注册的JSP页面)或`RegServlet`(处理注册请求的Servlet)。 总结来说,使用JSP实现的用户登录模块包括前端表单设计、后端数据验证以及用户会话管理等多个环节。这...

    JSPMVC结构注册登陆模块

    总结,`JSPMVC结构注册登陆模块`提供了一个基础的框架,帮助开发者理解MVC模式在Web应用中的运用,以及如何利用MySQL、DAO和服务层处理用户注册和登录。通过学习和实践这个模块,初学者可以掌握核心的Web开发技能,...

    02_尚硅谷_书城第二阶段,注册、登录功能 - 课堂笔记1

    【知识点详解】 ...通过这些知识,开发者能够构建一个具备用户注册和登录功能的简单书城系统。在后续的开发中,可能还会涉及到Service层和DAO层的具体实现,以及页面展示和用户交互等功能的完善。

    JDBC+DAO.rar_DAO JDBC_java d_jdbc d_jdbc dao_留言系统

    1. **添加留言**: 用户提交留言信息,包括用户名、内容和时间戳等,通过DAO层插入数据库。 2. **显示留言**: 查询数据库并展示所有留言,可能按照时间顺序排列。 3. **删除留言**: 根据留言ID删除指定的留言记录。 4...

    hibhernate-struts2实现的学生管理系统

    2. DAO层:具体实现Hibernate的数据访问,包括Session的管理、事务的处理等。 3. Action层:Struts2的Action类负责接收请求,调用Service层的方法,处理业务逻辑,并返回结果。 4. 视图层:使用JSP展示数据,...

    java三层范例

    `Test(三层)`可能包含多个服务类,这些类封装了具体业务操作,如用户注册、订单处理等逻辑。 3. 数据访问层(Data Access Layer) 数据访问层是负责与数据库进行交互的,包括数据的读取、插入、更新和删除等操作。...

    第4章注册、登录和注销.pptx

    Action层处理登录请求,Service层验证用户身份,DAO层执行数据库查询。成功后,创建会话并存储用户信息,以便后续请求识别用户状态。 4.3 注销 注销操作主要涉及会话销毁,确保用户退出后无法继续访问受限资源。...

    3-13 实现用户登陆功能(持久层&业务层) - EMOS小程序1

    实现微信小程序用户登录功能的持久层和业务层设计 在微信小程序中实现用户...* 实现用户注册功能 * 实现用户信息修改功能 * 实现用户登出功能 * 实现用户权限管理功能 这些功能可以通过扩展业务层和持久层来实现。

    应用于团体组织内部信息交流的多功能即时通讯App-附件2

    - DAO层作为业务处理层与数据库之间的桥梁,确保了数据处理的高效性和安全性。 #### 三、核心功能模块 **1. 即时通讯模块** - 提供实时的文字、语音、图片等多媒体信息传输功能。 - 支持单聊和群聊,便于用户进行...

    MyEclipse整合ssh三大框架环境搭载用户注册源码下载

    4. 在Action类中,注入Service层,Service层再注入DAO层,通过Spring管理的对象间依赖关系,实现控制反转和依赖注入。 5. 配置Hibernate的实体类,用@Entity注解标记,同时创建映射文件或使用注解进行表字段的映射。...

    Java ee 企业应用开发:第8章 Ajax用户注册.ppt

    ### Java EE 企业应用开发:第8章 Ajax用户注册 #### 一、章节概述 本章节主要内容是关于如何使用Ajax技术来改进传统的用户注册流程,从而提升用户体验。传统的用户注册方式是在用户提交表单后,服务器端进行...

    dao工具类(sqlhelper)

    在软件开发过程中,特别是在使用Java进行Web应用开发时,数据访问对象(DAO:Data Access Object)模式是一种常用的设计模式,用于实现业务逻辑层与数据访问层之间的解耦。DAO模式提供了一种高效、灵活的方式来处理...

    权限管理系统

    - **控制层** (Controller): 处理业务流程,接受用户请求并调用业务层处理。 - **业务层** (Manager): 实现业务逻辑。 - **持久层** (DAO): 数据访问,执行数据库操作。 2. **流程解析**: - 用户通过前端界面...

Global site tag (gtag.js) - Google Analytics