zoukankan      html  css  js  c++  java
  • 数据库:XML,解析Dom4J

    package com.itheima.util;
    
    import java.io.FileOutputStream;
    import java.net.URL;
    
    import org.dom4j.Document;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;
    
    public class Dom4JUtil {
        private static String xmlRealpath;
        static{
            ClassLoader cl = Dom4JUtil.class.getClassLoader();
            URL url = cl.getResource("users.xml");
            xmlRealpath = url.getPath();
        }
        
        public static Document getDocument() throws Exception{
            SAXReader reader = new SAXReader();
    //        return reader.read("src/users.xml");//错误
            return reader.read(xmlRealpath);
        }
        public static void write2xml(Document document) throws Exception{
            XMLWriter writer = new XMLWriter(new FileOutputStream(xmlRealpath), OutputFormat.createPrettyPrint());
            writer.write(document);
            writer.close();
        }
    }
    package com.itheima.dao.impl;
    
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.Node;
    
    import com.itheima.dao.UserDao;
    import com.itheima.domain.User;
    import com.itheima.util.Dom4JUtil;
    
    public class UserDaoXmlImpl implements UserDao {
    
        public User findByUsername(String username) {
            try {
                Document doc = Dom4JUtil.getDocument();
    //            List<Node> userNodes = doc.selectNodes("//user");
                Node node = doc.selectSingleNode("//user[@username='"+username+"']");
                if(node==null)
                    return null;
                
                String xmlBirthday = node.valueOf("@birthday");
                DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                Date birthday = df.parse(xmlBirthday);
                
                User user = new User(node.valueOf("@username"), node.valueOf("@password"), node.valueOf("@email"), birthday);
                return user;
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
        //<user username="abc" password="123" email="wzt@itcast.cn" birthday="1980-10-01"/>
        public void save(User user) {
            try {
                Document doc = Dom4JUtil.getDocument();
                Element root = doc.getRootElement();
                root.addElement("user")
                    .addAttribute("username", user.getUsername())
                    .addAttribute("password", user.getPassword())
                    .addAttribute("email", user.getEmail())
                    .addAttribute("birthday", user.getBirthday().toLocaleString());
                Dom4JUtil.write2xml(doc);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    
        public User findUser(String username, String password) {
            try {
                Document doc = Dom4JUtil.getDocument();
    //            List<Node> userNodes = doc.selectNodes("//user");
                Node node = doc.selectSingleNode("//user[@username='"+username+"' and @password='"+password+"']");
                if(node==null)
                    return null;
                
                String xmlBirthday = node.valueOf("@birthday");
                DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                Date birthday = df.parse(xmlBirthday);
                
                User user = new User(node.valueOf("@username"), node.valueOf("@password"), node.valueOf("@email"), birthday);
                return user;
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    
    }
    package com.itheima.dao.impl;
    
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.Node;
    
    import com.itheima.dao.UserDao;
    import com.itheima.domain.User;
    import com.itheima.util.Dom4JUtil;
    
    public class UserDaoXmlImpl implements UserDao {
    
        public User findByUsername(String username) {
            try {
                Document doc = Dom4JUtil.getDocument();
    //            List<Node> userNodes = doc.selectNodes("//user");
                Node node = doc.selectSingleNode("//user[@username='"+username+"']");
                if(node==null)
                    return null;
                
                String xmlBirthday = node.valueOf("@birthday");
                DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                Date birthday = df.parse(xmlBirthday);
                
                User user = new User(node.valueOf("@username"), node.valueOf("@password"), node.valueOf("@email"), birthday);
                return user;
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
        //<user username="abc" password="123" email="wzt@itcast.cn" birthday="1980-10-01"/>
        public void save(User user) {
            try {
                Document doc = Dom4JUtil.getDocument();
                Element root = doc.getRootElement();
                root.addElement("user")
                    .addAttribute("username", user.getUsername())
                    .addAttribute("password", user.getPassword())
                    .addAttribute("email", user.getEmail())
                    .addAttribute("birthday", user.getBirthday().toLocaleString());
                Dom4JUtil.write2xml(doc);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    
        public User findUser(String username, String password) {
            try {
                Document doc = Dom4JUtil.getDocument();
    //            List<Node> userNodes = doc.selectNodes("//user");
                Node node = doc.selectSingleNode("//user[@username='"+username+"' and @password='"+password+"']");
                if(node==null)
                    return null;
                
                String xmlBirthday = node.valueOf("@birthday");
                DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                Date birthday = df.parse(xmlBirthday);
                
                User user = new User(node.valueOf("@username"), node.valueOf("@password"), node.valueOf("@email"), birthday);
                return user;
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    
    }
    package com.itheima.test;
    
    import static org.junit.Assert.*;
    
    import java.util.Date;
    
    import org.junit.Test;
    
    import com.itheima.domain.User;
    import com.itheima.exception.UserHasExistException;
    import com.itheima.service.BusinessService;
    import com.itheima.service.impl.BusinessServiceImpl;
    
    public class BusinessServiceImplTest {
        private BusinessService s = new BusinessServiceImpl();
        @Test
        public void testRegist() throws UserHasExistException {
            User user = new User("wzhting", "123", "wzt@itcast.cn", new Date());
            s.regist(user);
        }
        @Test(expected=com.itheima.exception.UserHasExistException.class)
        public void testRegist1() throws UserHasExistException {
            User user = new User("wzhting", "123", "wzt@itcast.cn", new Date());
            s.regist(user);
        }
        @Test
        public void testLogin() {
            User user = s.login("wzhting", "123");
            assertNotNull(user);
            user = s.login("wzhting", "111");
            assertNull(user);
            user = s.login("asf", "111");
            assertNull(user);
        }
    
    }
    package com.itheima.util;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.apache.commons.beanutils.BeanUtils;
    
    public class BeanUtil {
        //把请求参数封装到指定的JavaBean中
        public static <T> T fillBean(HttpServletRequest request,Class<T> clazz){
            try {
                T bean = clazz.newInstance();
                BeanUtils.populate(bean, request.getParameterMap());
                return bean;
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    }
  • 相关阅读:
    php ajax 表格排序,调整列宽,修改内容
    Jquery隐藏式评论
    还是一个鼠标点击td变成input,失去焦点更新数据库
    Jquery php 点击td变成input,修改后失去焦点发送数据
    hdu 1713 相遇周期 比较绕的最大公约,最小公倍问题
    hdu 1722 Cake (抽象出欧几里得)
    提供Webservice的地方
    实现汉字转拼音
    java 注解
    c#获取汉字的拼音首字母
  • 原文地址:https://www.cnblogs.com/xiarongjin/p/8367676.html
Copyright © 2011-2022 走看看