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

📄 smschool.java

📁 计算机技术的快速发展
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
      catch (Exception e) {
        e.printStackTrace();
      }
    }
  }

  /**
   * 保存数据库到DB
   *
   * @param con
   * @throws SQLException
   */
  private void saveToDB(Connection con) throws SQLException {
    PreparedStatement pstmt = null;
    try {
      pstmt = con.prepareStatement(SAVE_SCHOOL);
      pstmt.setInt(1, this.provinceId);
      pstmt.setInt(2, this.cityId);
      pstmt.setInt(3, this.lvId);
      pstmt.setString(4, this.schoolName);
      pstmt.setInt(5, this.schoolId);
      pstmt.executeUpdate();
    }
    finally {
      try {
        pstmt.close();
      }
      catch (Exception e) {
        e.printStackTrace();
      }
    }
  }

  /**
   * 保存信息修改;当对该类的属性进行更改后,可以使用该方法进行写入数据库操作。
   *
   */
  public void save() {
    if (this.isChanged) {
      try {
        saveToDB();
      }
      catch (UnacceptableException ue) {
      }

    }
  }

  /**
   * 获取该学校所拥有的班级总数
   *
   * @return
   * @throws UnacceptableException
   */
  public int getSMClassCount() throws UnacceptableException {
    int count = -1;
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
      conn = DBManager.getConnection();
      pstmt = conn.prepareStatement(CLASS_COUNT);
      pstmt.setInt(1, this.schoolId);
      rs = pstmt.executeQuery();
      if (rs.next()) {
        count = rs.getInt(1);
      }
    }
    catch (SQLException sqle) {

    }
    finally {
      DBManager.closeObject(conn, pstmt, rs);
    }
    return count;
  }

  /**
   * 获取班级
   *
   * @param classid
   *            班级ID
   * @return
   * @throws SMClassNotFoundException
   * @throws UnacceptableException
   */
  public SMClass getSMClass(int classid) throws SMClassNotFoundException,
      UnacceptableException {
    return new SMClass(classid);
  }

  /**
   * 根据“学校ID”获取所有这个学校所拥有的班级信息。
   *
   * @return
   * @throws UnacceptableException
   */
  public SMClass[] getSMClasses() throws UnacceptableException {
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    SMClass[] iSMClass = null;
    int number = getSMClassCount();
    if (number >= 1) {
      iSMClass = new SMClass[number];
      try {
        conn = DBManager.getConnection();
        pstmt = conn.prepareStatement(ALL_CLASS_FOR_THIS_SCHOOL);
        pstmt.setInt(1, this.schoolId);
        rs = pstmt.executeQuery();
        for (int i = 1; i <= number; i++) {
          iSMClass[i] = new SMClass(rs.getInt(1));
        }
      }
      catch (Exception e) {
        throw new UnacceptableException("数据库操作失败!", e);
      }
      finally {
        DBManager.closeObject(conn, pstmt, rs);
      }
    }
    return iSMClass;
  }

  /**
   * 搜索班级 ,功能与getSMClasses()方法大体相同,只是多了班级名称参数,和班级入学时间。
   *
   * @param beginyear
   * @param classname
   * @return
   * @throws SMClassNotFoundException
   * @throws UnacceptableException
   */
  public SMClass[] searchSMClass(String beginyear, String classname) throws
      SMClassNotFoundException, UnacceptableException {
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    SMClass[] iSMClass = null;
    int number = -1;
    try {
      conn = DBManager.getConnection();
      if (classname != "" && classname!=null) {
        pstmt = conn.prepareStatement("SELECT count(1) FROM sm_class WHERE schoolid=? AND beginyear=? AND classname LIKE ?");
        pstmt.setInt(1, this.schoolId);
        pstmt.setString(2, beginyear);
        pstmt.setString(3, "%" + classname + "%");
      }
      else if(beginyear!=null && beginyear!="") {
        pstmt = conn.prepareStatement(
            "SELECT count(1) FROM sm_class WHERE schoolid=? AND beginyear=?");
        pstmt.setInt(1, this.schoolId);
        pstmt.setString(2, beginyear);
      }
      else {
        pstmt = conn.prepareStatement(
            "SELECT count(1) FROM sm_class WHERE schoolid=?");
        pstmt.setInt(1, this.schoolId);
      }
      rs = pstmt.executeQuery();
      if (rs.next()) {
        number = rs.getInt(1);
      }
    }
    catch (SQLException sqle) {}
    if (number >= 1) {
      iSMClass = new SMClass[number];
      try {
        conn = DBManager.getConnection();
        if (classname != "" && classname!=null) {
          pstmt = conn.prepareStatement(SEARCH_CLASS_FROM_THIS_SCHOOL);
          pstmt.setInt(1, this.schoolId);
          pstmt.setString(2, beginyear);
          pstmt.setString(3, "%" + classname + "%");
        }
        else if(beginyear!=null && beginyear!="") {
          pstmt = conn.prepareStatement(
              SEARCH_CLASS_FROM_THIS_SCHOOL_NO_CLASSNAME);
          pstmt.setInt(1, this.schoolId);
          pstmt.setString(2, beginyear);
        }
        else {
          pstmt = conn.prepareStatement(
              SEARCH_CLASS_FROM_THIS_SCHOOL_NO_CLASSNAME_NO_BEGINYEAR);
          pstmt.setInt(1, this.schoolId);
        }
        rs = pstmt.executeQuery();
        for (int i = 0; i < number && rs.next(); i++) {
          iSMClass[i] = new SMClass(rs.getInt(1));
        }
      }
      catch (Exception e) {
        throw new UnacceptableException("数据库操作失败!", e);
      }
      finally {
        DBManager.closeObject(conn, pstmt, rs);
      }
    }
    return iSMClass;
  }

  /**
   * 添加新班级
   *
   * @param classname
   *            班级名称
   * @param beginyear
   *            入学年份
   * @param username
   *            创始人用户名
   * @return
   * @throws SMClassAlreadyExistsException
   * @throws UnacceptableException
   */
  public SMClass addNewSMClass(String classname, String beginyear,
                               String username) throws
      SMClassAlreadyExistsException,
      UnacceptableException {
    return new SMClass(this.schoolId, classname, beginyear, username);
  }

  /**
   * 删除班级相关信息
   *
   * @param classid
   * @throws SMClassNotFoundException
   * @throws UnacceptableException
   */
  public void deleteSMClass(int classid) throws SMClassNotFoundException,
      UnacceptableException {
    try {
      this.getSMClass(classid).deleteSMMembers();
    }
    catch (SMMemberNotFoundException smme) {
      /* do nothing */
    }
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
      conn = DBManager.getConnection();
      pstmt = conn.prepareStatement(DELETE_CLASS);
      pstmt.setInt(1, classid);
      pstmt.executeUpdate();
    }
    catch (SQLException sqle) {
      throw new UnacceptableException("删除班级失败!", sqle);
    }
    finally {
      DBManager.closeObject(conn, pstmt, rs);
    }
  }

  /**
   * 删除所有班级相关信息
   *
   * @throws UnacceptableException
   */
  public void deleteSMClasses() throws UnacceptableException {
    SMClass[] smc = this.getSMClasses();
    try {
      for (int i = 0; i <= smc.length; i++) {
        smc[i].deleteSMMembers();
      }
    }
    catch (SMMemberNotFoundException smme) {
      /* do nothing */
    }
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
      conn = DBManager.getConnection();
      pstmt = conn.prepareStatement(DELETE_ALL_CLASS);
      pstmt.setInt(1, this.schoolId);
      pstmt.executeUpdate();
    }
    catch (SQLException sqle) {
      throw new UnacceptableException("删除班级失败!", sqle);
    }
    finally {
      DBManager.closeObject(conn, pstmt, rs);
    }
  }

}

⌨️ 快捷键说明

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