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

📄 usermgmt.java

📁 论坛元程序
💻 JAVA
字号:
package yy;

import yy.User;
import yy.DataBaseConnection;
import yy.SubjectMgmt;
import yy.CmtMgmt;
import java.io.*;
import java.util.*;
import java.sql.*;

public class UserMgmt {
  private Connection con;

  //构造方法
  public UserMgmt() {
    con = DataBaseConnection.getConnection();
  }

  //返回一个特定的用户
  public User getOneUser(int userId) throws Exception {
    Statement stmt = con.createStatement();
    ResultSet rst = stmt.executeQuery("select * from User where user_id=" +
                                      userId);

    User temp = new User();
    if (rst.next()) {
      temp.setUserId(rst.getInt("user_id"));
      temp.setUserName(rst.getString("user_name"));
      temp.setUserPWD(rst.getString("user_password"));
      temp.setUserRank(rst.getInt("user_rank"));
      temp.setState(rst.getInt("state"));
      temp.setEmail(rst.getString("email"));
      temp.setUserPic(rst.getString("user_pic"));
      temp.setIsOnline(rst.getInt("isonline"));
      temp.setNumOfPublish(rst.getInt("numofpublish"));
      temp.setNumOfVisit(rst.getInt("numofvisit"));
      java.sql.Date date = rst.getDate("register_time");
      temp.setRegisterTime(date);
      temp.setQuestion(rst.getString("question"));
      temp.setAnswer(rst.getString("answer"));
    }
    //rst.close();
    //stmt.close();
    con.close();
    return temp;
  }

  //返回满足一定条件的用户组群,这里先只实现返回所有的用户
  public Collection getUsers() throws Exception {
    Statement stmt = con.createStatement();
    //注意sql语句的执行顺序,这里先查找id就能找到数据
    ResultSet rst = stmt.executeQuery("select * from User where user_rank=1 or user_rank=2 or user_rank=4 order by user_rank desc,numofvisit desc");

    Collection ret = new ArrayList();
    while (rst.next()) {
      User temp = new User();
      temp.setUserId(rst.getInt("user_id"));
      temp.setUserName(rst.getString("user_name"));
      temp.setUserPWD(rst.getString("user_password"));
      temp.setUserRank(rst.getInt("user_rank"));
      temp.setState(rst.getInt("state"));
      temp.setEmail(rst.getString("email"));
      temp.setUserPic(rst.getString("user_pic"));
      temp.setIsOnline(rst.getInt("isonline"));
      temp.setNumOfPublish(rst.getInt("numofpublish"));
      temp.setNumOfVisit(rst.getInt("numofvisit"));
      java.sql.Date date = rst.getDate("register_time");
      temp.setRegisterTime(date);
      temp.setQuestion(rst.getString("question"));
      temp.setAnswer(rst.getString("answer"));
      ret.add(temp);
    }
    //rst.close();
    //stmt.close();
    con.close();
    return ret;
  }
  //返回所有的斑竹和申请斑竹的用户,在委任和更换斑竹的时候会用到
  public Collection getHostCandidate() throws Exception {
    Statement stmt = con.createStatement();
    //注意sql语句的执行顺序,这里先查找id就能找到数据
    ResultSet rst = stmt.executeQuery("select * from User where user_rank=2 or user_rank=3 or user_rank=4 order by user_rank desc,numofvisit desc");

    Collection ret = new ArrayList();
    while (rst.next()) {
      User temp = new User();
      temp.setUserId(rst.getInt("user_id"));
      temp.setUserName(rst.getString("user_name"));
      temp.setUserPWD(rst.getString("user_password"));
      temp.setUserRank(rst.getInt("user_rank"));
      temp.setState(rst.getInt("state"));
      temp.setEmail(rst.getString("email"));
      temp.setUserPic(rst.getString("user_pic"));
      temp.setIsOnline(rst.getInt("isonline"));
      temp.setNumOfPublish(rst.getInt("numofpublish"));
      temp.setNumOfVisit(rst.getInt("numofvisit"));
      java.sql.Date date = rst.getDate("register_time");
      temp.setRegisterTime(date);
      temp.setQuestion(rst.getString("question"));
      temp.setAnswer(rst.getString("answer"));
      ret.add(temp);
    }
    //rst.close();
    //stmt.close();
    con.close();
    return ret;
  }


  //删除一个指定的用户,删除用户时连同该用户相关的所有帖子以及每个帖子的回复也一并删除
  //若删除的是斑竹,则还要在社区表中将社区斑竹的内容更新
  public void deleteOneUser(int userId) throws Exception {
    Statement stmt = con.createStatement();
    SubjectMgmt delSubject = new SubjectMgmt();
    //ReplyMgmt delReply=new ReplyMgmt();
    ResultSet rst = stmt.executeQuery(
        "select Subject.* from Subject,User where User.user_id=" + userId +
        " and Subject.author=User.user_name");
    while (rst.next()) {
      int i = rst.getInt("subject_id");
      //delReply.deleteReplyBySubjectId(i);//删除相应帖子的所有回复
      //这句范了错误,下面一句已经封装了删除所有的回复的功能
      delSubject.deleteOneSubject(i); //删除相应用户的一条帖子
    }
    //rst.close();
    ResultSet rstUser = stmt.executeQuery("select * from User where user_id=" +
                                          userId);
    if (rstUser.next()) {
      int userRank = rstUser.getInt("user_rank");
      //如果是斑竹,则要将它所在的社区的斑竹社区清空
      if (userRank == 2) {
        String userName = rstUser.getString("user_name");
        ResultSet rstCmt = stmt.executeQuery(
            "select * from Community where host_name='" + userName+"'");
        while (rstCmt.next()) {
          CmtMgmt cmtMgmt = new CmtMgmt();
          cmtMgmt.retireHost(userId);
        }
      }
    }
    stmt.execute("delete from User where user_id=" + userId);
    //stmt.close();

  }

  //设置用户状态,将用户的状态设置为封闭或者正常
  public void setUserState(int userId) throws Exception {
    Statement stmt = con.createStatement();
    ResultSet rst = stmt.executeQuery("select * from User where user_id=" +
                                      userId);
    if (rst.next()) {
      int state = rst.getInt("state");
      if (state == 1) {
        stmt.execute("update User set state=0 where user_id=" + userId);
      }
      else {
        stmt.execute("update User set state=1 where user_id=" + userId);
      }
    }
    //rst.close();
    //stmt.close();

  }

}

⌨️ 快捷键说明

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