⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userinfodao.java

📁 典型实用的利用tapstry、spring、hibernate、框架的实例
💻 JAVA
字号:
/*
 * Created on 2004-10-31
 * 
 * http://www.open-v.com 提供代码的维护工作
 */
package com.openv.spring.service.dao.impl;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.doomdark.uuid.UUIDGenerator;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;

import com.openv.spring.domainmodel.UserInfoVO;
import com.openv.spring.service.dao.IUserInfoDAO;
import com.openv.spring.service.hibernate.UserInfo;
import com.openv.spring.service.hibernate.UserInterest;

/**
 * IUserInfoDAO实现。处理用户相关信息的DAO实现。比如,获得兴趣列表、存储用户注册信息。
 * 
 * @author luoshifei
 */
public class UserInfoDAO extends HibernateDaoSupport implements IUserInfoDAO {
    private static final Log log = LogFactory.getLog(UserInfoDAO.class);

    /**
     * 获得兴趣信息列表
     * 
     * @return List 兴趣信息列表
     */
    public List getInterests() throws DataAccessException {
        List list = new ArrayList();
        List interestList = this.getHibernateTemplate().find(
                "select interest.name from Interest interest");
        for (int i = 0, k = interestList.size(); i < k; ++i) {
            list.add(i, getFromEncodingTo((((String) interestList.get(i))
                    .trim()), "iso-8859-1", "gbk"));
            log.info((String) list.get(i));
        }

        return list;
    }

    /**
     * 存储用户注册信息
     * 
     * @param userinfoVO
     *            用户注册信息
     * 
     * @return boolean 存储用户注册信息是否成功
     */
    public boolean setUserInfo(UserInfoVO userinfoVO)
            throws DataAccessException {
        if (userinfoVO == null)
            return false;
        UserInfo ui = new UserInfo();
        ui.setId(getID());
        ui.setUsername(getFromEncodingTo(userinfoVO.getUsername().trim(),
                "gbk", "iso-8859-1"));
        ui.setPassword(userinfoVO.getPassword().trim());
        ui.setEmail(userinfoVO.getEmail().trim());
        ui.setCountry(getFromEncodingTo(userinfoVO.getCountry(), "gbk",
                "iso-8859-1"));
        this.getHibernateTemplate().save(ui);
        List interestList = userinfoVO.getSelectedinterests();
        if (interestList == null)
            return true;
        UserInterest userinterest;
        for (int i = 0, k = interestList.size(); i < k; ++i) {
            userinterest = new UserInterest();
//            //验证事务回滚操作!
//            userinterest.setId(null);
            userinterest.setId(getID());
            userinterest.setUsername(getFromEncodingTo(userinfoVO.getUsername()
                    .trim(), "gbk", "iso-8859-1"));
            userinterest.setName(getFromEncodingTo(
                    (String) interestList.get(i), "gbk", "iso-8859-1"));
            this.getHibernateTemplate().save(userinterest);
        }
        return true;
    }

    /**
     * 模拟唯一ID的生成
     * 
     * @return
     */
    private String getID() {
        return UUIDGenerator.getInstance().generateTimeBasedUUID().toString();
    }

    /**
     * 字符串编码转换
     * 
     * @param temp
     * @param fromEncoding
     * @param toEncoding
     * @return
     */
    private String getFromEncodingTo(String temp, String fromEncoding,
            String toEncoding) {
        String rString = "";
        try {
            byte[] rBytes = temp.getBytes(fromEncoding);
            rString = new String(rBytes, toEncoding);
        } catch (UnsupportedEncodingException ex) {
            log.error("编码转换过程出现过错误", ex);
        }
        return rString;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -