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

📄 userinfoaction.java

📁 tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛
💻 JAVA
字号:
/* * 作者: 胡李青 * qq: 31703299 * Copyright (c) 2007 huliqing * 主页 http://www.tbuy.biz/ * 你可以免费使用该软件,未经许可请勿作用于任何商业目的,如有技术问题请与本人联系! */package biz.tbuy.bbs;import biz.tbuy.common.pool.ProxyConn;import biz.tbuy.bbs.bean.BaseBean;import biz.tbuy.common.logs.Elog;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;/** * @author huliqing * <p><b>qq:</b>31703299 * <p><b>E-mail:</b> * <a href="mailto:huliqing.cn@gmail.com">huliqing.cn@gmail.com</a> * <p><b>Homepage:</b> * <a href="http://www.tbuy.biz/">http://www.tbuy.biz/</a> */public class UserinfoAction extends BaseBean{        public UserinfoAction() {    }        /**     * 添加用户的BBS信息进数据库     * @param userId 用户的ID,也即帐号     * @return true 如果添加成功,否则返回false     */    public static boolean addUserinfoByUserId(String userId) {        boolean isOk = false;        String sql = "insert into userinfo (u_lastOnline, u_byUser) " +                "values (now(), ?)";        ProxyConn myConn = getConn();        try {            PreparedStatement ps = myConn.prepareStatement(sql);            ps.setString(1, userId);            isOk = ps.executeUpdate() > 0;        } catch (SQLException sqle) {            Elog.log("UserinfoAction.getUserinfoById()/" + sqle.getMessage());        } finally {            myConn.close();        }        return isOk;    }        /**     * 通过用户的id,判断用户的BBS信息是否存在.     * 如果论坛信息存在则返回true,否则返回false     * @param byUser 用户的ID     * @return true 如果用户信息存在,否则返回false     */     public static boolean isExistUserinfoById(String byUser) {        boolean isOk = false;        String sql = "select * from userinfo where u_byUser=?";        ProxyConn myConn = getConn();        try {            PreparedStatement ps = myConn.prepareStatement(sql);            ps.setString(1, byUser);            ResultSet rs = ps.executeQuery();            isOk = rs.next();        } catch (SQLException sqle) {            Elog.log("UserinfoAction.isExistUserinfoById()/" + sqle.getMessage());        } finally {            myConn.close();        }        return isOk;    }        /**     * 检查该ID用户的Userinfo信息是否存在     * @param userId 所有检查的用户的ID     * @param create 如果为true,则在查找不到该用户的Userinfo时自动创建,否则不创建.     * @return isOk true如果存在该用户的Userinfo信息,否则返回fasle     */     public static boolean checkExistUserinfoById(String userId, boolean create) {        boolean isOk = false;        // 如果该id的userinfo 已经存在        if (isExistUserinfoById(userId)) {            isOk = true;        } else {            Elog.debug("UserinfoAction:用户BBS信息不存在:" + userId);            if (create) {   // 判断是否需要创建                Elog.debug("UserinfoAction:创建用户BBS信息:" + userId);                isOk = addUserinfoByUserId(userId);                if (isOk) {                    Elog.debug("UserinfoAction:创建BBS信息成功:" + userId);                }            }        }        return isOk;    }    /**     * 获取用户的BBS信息(通过用户的ID)     * @param userId 用户的ID,通过该ID查到用户的BBS信息     * @return userinfo 返回一个UserinfoModel 该对象包含用户的BBS用户信息     */     public static UserinfoModel getUserinfoByUserId(String userId) throws Exception {        UserinfoModel userinfo = null;        String sql = "select * from userinfo where u_byUser = ?";        ProxyConn myConn = getConn();        try {            PreparedStatement ps = myConn.prepareStatement(sql);            ps.setString(1, userId);            ResultSet rs = ps.executeQuery();            List<UserinfoModel> list = new ArrayList<UserinfoModel>(1);            list = getUserinfo(rs);            if (list.isEmpty()) {                Elog.debug("UserinfoAction:找不到用户BBS信息:" + userId);                if (checkExistUserinfoById(userId, true)) {                    Elog.debug("UserinfoAction:重新获取用户BBS信息:" + userId);                    userinfo = getUserinfoByUserId(userId);                }            } else {                userinfo = list.get(0);            }        } catch (SQLException sqle) {            Elog.log("UserinfoAction.getUserinfoById()/" + sqle.getMessage());        } finally {            myConn.close();        }        return userinfo;    }        /**     * 更新用户的BBS信息, 该方法不会更新用户的最后登录时间及IP     * @see #updateByLogin(String, String)     * @param userinfo 需要被更新的UserInfoModel对象     * @return true 如果更新成功,否则返回false     */    public static boolean updateUserinfo(UserinfoModel userinfo) {        boolean isOk = false;        String sql = "update userinfo set " +                "u_face=?,       u_level=?,      u_sign=?,      " +                "u_signable=?,   u_group=?,      u_beLock=?,    " +                "u_totalTopic=?, u_totalArticle=? " +                "where u_byUser=?";        ProxyConn myConn = getConn();        try {            PreparedStatement ps = myConn.prepareStatement(sql);            ps.setString(1, userinfo.getFace());            ps.setInt(2, userinfo.getLevel());            ps.setString(3, userinfo.getSign());            ps.setBoolean(4, userinfo.getSignable());            ps.setString(5, userinfo.getGroup());            ps.setBoolean(6, userinfo.getBeLock());            ps.setInt(7, userinfo.getTotalTopic());            ps.setInt(8, userinfo.getTotalArticle());            ps.setString(9, userinfo.getByUser());            if (ps.executeUpdate() > 0) {                isOk = true;            } else {                if (checkExistUserinfoById(userinfo.getByUser(), true)) {                    isOk = updateUserinfo(userinfo);                }            }        } catch (SQLException sqle) {            Elog.log("UserinfoAction.updateUserinfo()/" + sqle.getMessage());        } finally {            myConn.close();        }        return isOk;    }        /**     * 通过用户的ID信息更新用户的最后登录时间及IP     * @param userId 需要更新信息的用户id     * @param ip 用户的最后登录ip     * @return true 如果更新成功,否则返回false     */     public static boolean updateByLogin(String userId, String ip) {        boolean isOk = false;        String sql = "update userinfo set " +                "u_lastOnline=now(), " +                "u_lastIp=? " +                "where u_byUser=?";        ProxyConn myConn = getConn();        try {            PreparedStatement ps = myConn.prepareStatement(sql);            ps.setString(1, ip);            ps.setString(2, userId);            if (ps.executeUpdate() > 0) {                isOk = true;            } else {                if (checkExistUserinfoById(userId, true)) {                    isOk = updateByLogin(userId, ip);                }            }        } catch (SQLException sqle) {            Elog.log("UserinfoAction.updateByLogin()/" + sqle.getMessage());        } finally {            myConn.close();        }        return isOk;    }    /**     * get list of UserInfoModel by ResultSet     * 注意:修改该方法时可能需要同时修改:     * CommonAction.getRepliesOfObject(ResultSet rs)     * @param a ResultSet of UserInfoModels     * @return list of UserInfoModel     */    private static List<UserinfoModel> getUserinfo(ResultSet rs) throws Exception {        List<UserinfoModel> list = new ArrayList<UserinfoModel>();        try {            while (rs.next()) {                list.add(getUserinfoByRS(rs));            }        } catch (SQLException sqle) {            Elog.log("UserinfoAction.getUserinfo()/" + sqle.getMessage());            throw new Exception("UserinfoAction:getUserinfo:" + sqle.getMessage());        }        return list;    }        /**     * 通过该ResultSet的当前行获取相应的数据,并转为单个UserInfoModel返回     * 这里是真正从ResultSet中获取数据的地方,所有的userinfoModel都应该从     * 这里获得数据     * @param rs 一个ResultSet     * @return userinfo      */     public static UserinfoModel getUserinfoByRS(ResultSet rs) {        UserinfoModel userinfo = new UserinfoModel();        try {            userinfo.setBeLock(rs.getBoolean("u_beLock"));            userinfo.setByUser(rs.getString("u_byUser"));            userinfo.setSign(rs.getString("u_sign"));            userinfo.setSignable(rs.getBoolean("u_signable"));            userinfo.setFace(rs.getString("u_face"));            userinfo.setGroup(rs.getString("u_group"));            userinfo.setLevel(rs.getInt("u_level"));            userinfo.setNum(rs.getInt("u_num"));            userinfo.setTotalArticle(rs.getInt("u_totalArticle"));            userinfo.setTotalTopic(rs.getInt("u_totalTopic"));            userinfo.setLastOnline(rs.getTimestamp("u_lastOnline"));            userinfo.setLastIp(rs.getString("u_lastIp"));        } catch (SQLException sqle) {            Elog.log("UserinfoAction.getUserinfoByRS()/" + sqle.getMessage());        }        return userinfo;    }}

⌨️ 快捷键说明

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