📄 messageaction.java
字号:
/* * 作者: 胡李青 * qq: 31703299 * Copyright (c) 2007 huliqing * 主页 http://www.tbuy.biz/ * 你可以免费使用该软件,未经许可请勿作用于任何商业目的 */package biz.tbuy.message;import biz.tbuy.common.logs.Elog;import biz.tbuy.common.pool.ProxyConn;import biz.tbuy.message.bean.BaseBean;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 MessageAction extends BaseBean{ public MessageAction() {} /** * 添加短讯息 * @param message a MessageModel */ public static boolean addMessage(MessageModel message) { boolean isOk = false; String sql = "insert into message (m_toUser, m_fromUser, m_title, " + "m_content, m_beRead, m_beRevoke, m_datetime) " + "values (?, ?, ?, ?, ?, ?, now())"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ps.setString(1, message.getToUser()); ps.setString(2, message.getFromUser()); ps.setString(3, message.getTitle()); ps.setString(4, message.getContent()); ps.setBoolean(5, message.getBeRead()); ps.setBoolean(6, message.getBeRevoke()); isOk = ps.executeUpdate() > 0; } catch (Exception e) { Elog.log("Exception:MessageAction:addMessage:" + e.toString()); } finally { myConn.close(); } return isOk; } /** * 编辑或更新短讯息,可能用到的地方如:更新短讯息为“已读" * @param message 需要被更新的MessageModel * @return true 如果更新成功, 否则false; */ public static boolean updateMessage(MessageModel message) { boolean isOk = false; String sql = "update message set " + "m_toUser=?, " + "m_fromUser=?, " + "m_title=?, " + "m_content=?, " + "m_datetime=?, " + "m_beRead=?, " + "m_beRevoke=? " + "where m_num=?"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ps.setString(1, message.getToUser()); ps.setString(2, message.getFromUser()); ps.setString(3, message.getTitle()); ps.setString(4, message.getContent()); ps.setTimestamp(5, message.getDatetime()); ps.setBoolean(6, message.getBeRead()); ps.setBoolean(7, message.getBeRevoke()); ps.setInt(8, message.getNum()); isOk = ps.executeUpdate() > 0; } catch (Exception e) { Elog.log("Exception:MessageAction:updateMessage:" + e.toString()); } finally { myConn.close(); } return isOk; } /** * 获取特定用户的所有短讯数量(接收者) * @param userid 短讯接收者的id * @return total */ public static int getTotalByToUser(String userid) { int total = 0; String sql = "select * from message where m_toUser=?"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ps.setString(1, userid); ResultSet rs = ps.executeQuery(); rs.last(); total = rs.getRow(); } catch (Exception e) { Elog.log("Exception:MessageAction:getTotalByToUser:" + e.toString()); } finally { myConn.close(); } return total; } /** * 获取特点用户的所有短讯(接收者) * @param userid 短讯接收者的id * @param start * @param pageSize * @return messages */ public static List<MessageModel> getMessagesByToUser(String userid, int start, int pageSize) { List<MessageModel> messages = new ArrayList<MessageModel>(); String sql = "select * from message where m_toUser=? " + "order by m_num desc " + "limit ?, ?"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ps.setString(1, userid); ps.setInt(2, start); ps.setInt(3, pageSize); ResultSet rs = ps.executeQuery(); messages = getMessages(rs); } catch (Exception e) { Elog.log("Exception:MessageAction:getTotalByToUser:" + e.toString()); } finally { myConn.close(); } return messages; } /** * 删除指定的短讯息,该方法将彻底删除短讯 * @param message 需要被删除的MessageModel * @return true 如果删除成功,否则false; */ public static boolean deleteMessage(MessageModel message) { return deleteMessage(message.getNum()); } /** * 删除指定的短讯息,该方法将彻底删除短讯 * @param num 需要被删除的MessageModel的id * @return true 如果删除成功,否则false; */ public static boolean deleteMessage(int num) { boolean isOk = false; String sql = "delete from message where m_num = ?"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ps.setInt(1, num); isOk = ps.executeUpdate() > 0; } catch (Exception e) { Elog.log("Exception:MessageAction:deleteMessage:" + e.toString()); } finally { myConn.close(); } return isOk; } /** * 同时删除多个messages * @param messages manay MessageModel */ public static void deleteMessages(List<MessageModel> messages) { String sql = "delete from message where m_num = ?"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); for (MessageModel message : messages) { ps.setInt(1, message.getNum()); ps.executeUpdate(); } } catch (Exception e) { Elog.log("Exception:MessageAction:deleteMessages:" + e.toString()); } finally { myConn.close(); } } /** * 判断指定用户是否有新的短讯件 * @param userid 判断该用户是否有新信件 * @return true 如果有新信件,否则false */ public static boolean isNewMessages(String userid) { boolean isNews = false; String sql = "select * from message where m_toUser=? and m_beRead=?"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ps.setString(1, userid); ps.setBoolean(2, false); isNews = ps.executeQuery().next(); } catch (Exception e) { Elog.log("Exception:MessageAction:isNewMessages:" + e.toString()); } finally { myConn.close(); } return isNews; } /** ***********************************************************************/ /** * 获取MessageModels by ResultSet * @param rs 包含有MessageModel信息的ResultSet * @return messages 相应的MessageModel集合-ArrayList */ private static List<MessageModel> getMessages(ResultSet rs) { List<MessageModel> messages = new ArrayList<MessageModel>(); try { while (rs.next()) { messages.add(getMessageByRS(rs)); } } catch (SQLException sqle) { Elog.log("Exception:MessageAction:getMessages:" + sqle.getMessage()); } return messages; } /** * 获取MessageModel, 最终获取MessageModel是在这里的 * @param rs 通过该ResultSet获得当前指针下的MessageModel * @return message a MessageModel; */ public static MessageModel getMessageByRS(ResultSet rs) { MessageModel message = new MessageModel(); try { message.setBeRead(rs.getBoolean("m_beRead")); message.setContent(rs.getString("m_content")); message.setDatetime(rs.getTimestamp("m_datetime")); message.setFromUser(rs.getString("m_fromUser")); message.setNum(rs.getInt("m_num")); message.setTitle(rs.getString("m_title")); message.setToUser(rs.getString("m_toUser")); message.setBeRevoke(rs.getBoolean("m_beRevoke")); } catch (SQLException sqle) { Elog.log("Exception:MessageAction:getMessageByRS:" + sqle.getMessage()); } return message; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -