/**
* groupuser数据表相关操作
*/
package edu.csuft.chentao.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import edu.csuft.chentao.pojo.req.GroupOperationReq;
import edu.csuft.chentao.pojo.resp.ReturnInfoResp;
import edu.csuft.chentao.pojo.resp.UserCapitalResp;
import edu.csuft.chentao.util.Constant;
import edu.csuft.chentao.util.Logger;
import edu.csuft.chentao.util.OperationUtil;
/**
* @author csuft.chentao
*
* 2016年12月8日 下午9:39:40
*/
public class GroupUserTableOperate {
/**
* 插入数据
*
* @param groupId
* 群id
* @param userId
* 用户id
* @param capital
* 身份值
* @return
*/
public static synchronized boolean insert(int groupId, int userId,
int capital) {
Connection connection = DaoConnection.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
String sql = "insert into " + GroupUserTable.TABLE_ALL_FIELD
+ " values(?,?,?)";
ps = connection.prepareStatement(sql);
// 插入数据
ps.setInt(1, groupId);
ps.setInt(2, userId);
ps.setInt(3, capital);
System.out.println(groupId + "-->" + userId + "-->" + capital);
if (ps.executeUpdate() > 0) { // 执行成功
return true;
} else { // 执行失败
return false;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
OperationUtil.closeDataConnection(ps, rs);
}
return false;
}
/**
* 移除数据
*/
public static synchronized ReturnInfoResp remove(GroupOperationReq req) {
Connection connection = DaoConnection.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
ReturnInfoResp resp = new ReturnInfoResp();
try {
if (isExit(req.getGroupId(), req.getUserId1())) { // 如果群id和用户id存在
ps = connection.prepareStatement("delete from "
+ GroupUserTable.TABLE_NAME + " where "
+ GroupUserTable.GROUP_ID + "=? and "
+ GroupUserTable.USER_ID + "=?");
ps.setInt(1, req.getGroupId());
ps.setInt(2, req.getUserId1());
rs = ps.executeQuery();
if (rs.next()) {
resp.setType(Constant.TYPE_RETURN_INFO_SUCCESS);
resp.setObj("退出群成功");
} else {
resp.setType(Constant.TYPE_RETURN_INFO_FAIL);
resp.setObj("退出群失败");
}
} else {
resp.setType(Constant.TYPE_RETURN_INFO_FAIL);
resp.setObj("退出群失败");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
OperationUtil.closeDataConnection(ps, rs);
}
return resp;
}
/**
* 判断该条数据在数据表中是否存在
*
* @param connection
* Connection对象,连接数据库
* @param groupid
* 群id
* @param userid
* 用户id
* @return 该数据是否存在
*/
public static boolean isExit(int groupid, int userid) {
boolean isExit = false;
Connection connection = DaoConnection.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
// 在邀请用户加入群之前,先判断用户和群是否存在,如果不存在,则直接返回
if (!UserTableOperate.isExitUserWithUserId(userid)
|| !GroupTableOperate.isExitGroupWithGroupId(groupid)) {
return isExit;
}
try {
ps = connection.prepareStatement("select * from "
+ GroupUserTable.TABLE_NAME + " where "
+ GroupUserTable.GROUP_ID + "= ? and "
+ GroupUserTable.USER_ID + "= ?");
ps.setInt(1, groupid);
ps.setInt(2, userid);
rs = ps.executeQuery();
if (rs.next()) { // 在群里已经存在
Logger.log("isExit-->" + userid + "已经存在");
isExit = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
OperationUtil.closeDataConnection(ps, rs);
}
return isExit;
}
/**
* 根据群id得到该群中所有的成员id及其身份信息
*
* @param groupid
* 群id
* @return 成员id列表
*/
public static List<UserCapitalResp> selectIdAndCapitalInUserWithGroupId(
int groupid) {
List<UserCapitalResp> userCapitalList = new ArrayList<UserCapitalResp>();
Connection connection = DaoConnection.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
String sql = "select "+GroupUserTable.USER_ID+","+GroupUserTable.CAPITAL+" from "
+ GroupUserTable.TABLE_NAME + " where "
+ GroupUserTable.GROUP_ID + "=?";
ps = connection.prepareStatement(sql);
ps.setInt(1, groupid);
rs = ps.executeQuery();
while (rs.next()) {
userCapitalList.add(new UserCapitalResp(rs.getInt(1), rs
.getInt(2)));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
OperationUtil.closeDataConnection(ps, rs);
}
return userCapitalList;
}
/**
* 根据群id获取该群中所有用户的id
*
* @param groupId
* 群id
*/
public static List<Integer> selectAllUserIdsWithGroupId(int groupId) {
List<Integer> userIdList = new ArrayList<Integer>();
Connection connection = DaoConnection.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
String sql = "select " + GroupUserTable.USER_ID + " from "
+ GroupUserTable.TABLE_NAME + " where "
+ GroupUserTable.GROUP_ID + "=?";
ps = connection.prepareStatement(sql);
ps.setInt(1, groupId);
rs = ps.executeQuery();
while (rs.next()) {
userIdList.add(rs.getInt(1));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
OperationUtil.closeDataConnection(ps, rs);
}
return userIdList;
}
/**
* 根據用戶id得到所有的群的id
*
* @param userId
* 用戶id
* @return 該用戶所在群的id集合
*/
public static List<Integer> selectGroupIdsWithUserId(int userId) {
List<Integer> groupIdList = new ArrayList<Integer>();
Connection connection = DaoConnection.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
String sql = "select " + GroupUserTable.GROUP_ID + " from "
+ GroupUserTable.TABLE_NAME + " where "
+ GroupUserTable.USER_ID + " = ? ";
ps = connection.prepareStatement(sql);
// 设置用户id
ps.setInt(1, userId);
rs = ps.executeQuery();
while (rs.next()) {
groupIdList.add(rs.getInt(1));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
OperationUtil.closeDataConnection(ps, rs);
}
return groupIdList;
}
/**
* 更新用户的身份
*
* @param userId
* 需要更新的用户id
* @param groupId
* 群id
* @param capital
* 新的身份
*/
public static ReturnInfoResp updateCapital(int userId, int groupId,
int capital) {
ReturnInfoResp resp = new ReturnInfoResp();
Connection connection = DaoConnection.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
String sql = "update " + GroupUserTable.TABLE_NAME + " set "
+ GroupUserTable.CAPITAL + "=? where "
+ GroupUserTable.USER_ID + "=? and "
+ GroupUserTable.GROUP_ID + "=?";
ps = connection.prepareStatement(sql);
ps.setInt(1, capital);
ps.setInt(2, userId);
ps.setInt(3, groupId);
if (ps.executeUpdate() > 0) {
resp.setType(Constant.TYPE_RETURN_INFO_UPDATE_USER_CAPITAL_SUCCESS);
resp.setObj("更新成功");
} else {
resp.setType(Constant.TYPE_RETURN_INFO_UPDATE_USER_CAPITAL_FAIL);
resp.setObj("更新失败,请稍后再试");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
OperationUtil.closeDataConnection(ps, rs);
}
return resp;
}
/**
* 退出群
*
* @return 如果操作成功,则返回true,否则返回false
*/
public static boolean exitGroup(int groupId, int userId) {
boolean result = false;
Connection connection = DaoConnection.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
/**
* 如果不存在,则直接返回
*/
if (!isExit(groupId, userId)) {
return result;
}
System.out.println("GroupUserTableOperate.exitGroup退出群");
try {
String sql = "delete from " + GroupUserTable.TABLE_NAME + " where "
+ GroupUserTable.GROUP_ID + " = ? and "
+ GroupUserTable.USER_ID + " = ?";
ps = connection.p
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
个人花大量时间整理出的真实毕业设计实战成果,内容丰富,文档也很详细。无论做毕业设计还是用于学习技能,或工作中当做参考资料,都能发挥重要作用 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ 个人花大量时间整理出的真实毕业设计实战成果,内容丰富,文档也很详细。无论做毕业设计还是用于学习技能,或工作中当做参考资料,都能发挥重要作用 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ 个人花大量时间整理出的真实毕业设计实战成果,内容丰富,文档也很详细。无论做毕业设计还是用于学习技能,或工作中当做参考资料,都能发挥重要作用 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~
资源推荐
资源详情
资源评论
收起资源包目录
《毕业设计》--NettyPusher毕业设计,服务端.zip (106个子文件)
GroupUserTableOperate.class 8KB
GroupTableOperate.class 8KB
UserTableOperate.class 8KB
NettyCollections.class 6KB
GroupOperationHandler.class 6KB
OperationUtil.class 6KB
Constant.class 4KB
LoginHandler.class 3KB
MessageHandlerFactory.class 3KB
Message.class 3KB
Server.class 3KB
UserInfoResp.class 2KB
GroupInfoResp.class 2KB
MessageHandler.class 2KB
RegisterReq.class 2KB
UserTable.class 2KB
ServerHandler.class 2KB
Server$1.class 2KB
CreateGroupHandler.class 2KB
UpdateUserInfoReq.class 2KB
GroupTable.class 2KB
UpdateUserInfoHandler.class 2KB
GroupOperationReq.class 2KB
CreateGroupResp.class 2KB
RegisterResp.class 2KB
LoginReq.class 2KB
GroupUserTable.class 1KB
LoginHandler$1.class 1KB
AllMessageHandler.class 1KB
OperationUtil$1.class 1KB
DaoConnection.class 1KB
RegisterHandler.class 1KB
Logger.class 625B
Main.class 591B
Handler.class 205B
.classpath 591B
.gitattributes 378B
.gitignore 580B
netty-all-5.0.0.Alpha2.jar 2.56MB
mysql-connector-java-5.1.38-bin.jar 961KB
jboss-marshalling-1.3.0.CR9.jar 226KB
jboss-marshalling-serial-1.3.0.CR9.jar 67KB
GroupUserTableOperate.java 11KB
GroupTableOperate.java 11KB
UserTableOperate.java 11KB
GetInfoHandler.java 9KB
GroupOperationHandler.java 8KB
NettyCollections.java 7KB
OperationUtil.java 6KB
MessageTableOperate.java 6KB
Constant.java 6KB
GroupFileZipTableOperation.java 5KB
GroupFileZipTable.java 4KB
AnnouncementTable.java 3KB
LoginHandler.java 3KB
GroupOperationTableOperate.java 3KB
MessageTable.java 3KB
MessageHandlerFactory.java 3KB
Server.java 3KB
AnnouncementTableOperate.java 2KB
FileZip.java 2KB
Message.java 2KB
GroupReminderResp.java 2KB
AnnouncementReaderOperate.java 2KB
Announcement.java 2KB
UserInfoResp.java 2KB
UserTable.java 2KB
GroupOperationTable.java 2KB
GroupInfoResp.java 2KB
MessageHandler.java 2KB
ChangePasswordReq.java 2KB
RegisterReq.java 2KB
UpdateUserInfoHandler.java 2KB
GroupTable.java 2KB
AnnouncementHandler.java 1KB
AnnouncementReader.java 1KB
ChangePasswordHandler.java 1KB
UpdateUserInfoReq.java 1KB
ServerHandler.java 1KB
GroupUserTable.java 1KB
CreateGroupHandler.java 1KB
GetUserAndGroupInfoHandler.java 1KB
GroupOperationReq.java 1KB
GetInfoReq.java 1KB
ReturnInfoResp.java 1KB
LoginReq.java 1KB
CreateGroupReq.java 1KB
CreateGroupResp.java 1KB
RegisterResp.java 1KB
UserIdsInGroupResp.java 1018B
ManagerUserReq.java 1016B
DaoConnection.java 964B
FileZipHandler.java 944B
GetUserAndGroupInfoReq.java 944B
UserCapitalResp.java 818B
ManagerUserHandler.java 735B
AllMessageHandler.java 658B
RegisterHandler.java 620B
SerializableMap.java 512B
Handler.java 433B
共 106 条
- 1
- 2
资源评论
季风泯灭的季节
- 粉丝: 600
- 资源: 2920
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功