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

📄 userdao.java

📁 jGossip是一个简单而功能强大的Java论坛软件(消息板)
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

            st.close();
            connection.close();
        }
    }

    public String generatePassword() {
        SecureRandom random = new SecureRandom();
        String charset = IConst.VALUES.PASSWORD_DICTIONARY;
        int length = charset.length();
        StringBuffer newpass = new StringBuffer();

        for (int i = 0; i < IConst.VALUES.DEFAULT_PASSWORD_LENGTH; i++) {
            newpass.append(charset.charAt(random.nextInt(length)));
        }

        return newpass.toString();
    }

    /**
     * DOCUMENT ME!
     *
     * @param username DOCUMENT ME!
     * @param password DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws SQLException DOCUMENT ME!
     */
    public User getUser(String username, String password)
        throws SQLException {
        Connection connection = this.dataSource.getConnection();
        PreparedStatement st = connection.prepareStatement(dbDriver.getQueries()
                                                                   .getUserQueries()
                                                                   .getSql_GET_USER());
        User bean = new User();
        st.setString(1, username);
        st.setString(2, MD5Digest.digest(username, password));

        try {
            fillUser(st, bean);
        } finally {
            st.close();
            connection.close();
        }

        return bean;
    }

    /**
     * DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws SQLException DOCUMENT ME!
     */
    public ArrayList getUserEmails() throws SQLException {
        Connection connection = this.dataSource.getConnection();
        PreparedStatement st = connection.prepareStatement(dbDriver.getQueries()
                                                                   .getUserQueries()
                                                                   .getSql_GET_USER_EMAILS());
        ResultSet rs = null;
        ArrayList list = new ArrayList();

        try {
            rs = (ResultSet) st.executeQuery();

            while (rs.next()) {
                NamedValue nv = new NamedValue();
                nv.setName(rs.getString("user_name"));
                nv.setValue(rs.getString("user_mail"));
				list.add(nv);
            }
        } finally {
            if (rs != null) {
                rs.close();
            }

            st.close();
            connection.close();
        }

        return list;
    }

    /**
     * DOCUMENT ME!
     *
     * @param username DOCUMENT ME!
     * @param password DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws SQLException DOCUMENT ME!
     */
    public User getUserEncoded(String username, String password)
        throws SQLException {
        Connection connection = this.dataSource.getConnection();
        PreparedStatement st = connection.prepareStatement(dbDriver.getQueries()
                                                                   .getUserQueries()
                                                                   .getSql_GET_USER_ENCODED());
        User bean = new User();
        st.setString(1, username);
        st.setString(2, password);

        try {
            fillUser(st, bean);
        } finally {
            st.close();
            connection.close();
        }

        return bean;
    }

    /**
     * DOCUMENT ME!
     *
     * @param username DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws SQLException DOCUMENT ME!
     */
    public User getUserInfo(String username) throws SQLException {
        Connection connection = this.dataSource.getConnection();
        PreparedStatement st = connection.prepareStatement(dbDriver.getQueries()
                                                                   .getUserQueries()
                                                                   .getSql_GET_USER_INFO_FULL());
        User bean = new User();

        try {
            st.setString(1, username);
            fillUser(st, bean, false);
        } finally {
            st.close();
            connection.close();
        }

        return bean;
    }

    /**
     * DOCUMENT ME!
     *
     * @param username DOCUMENT ME!
     *
     * @return
     *
     * @throws SQLException DOCUMENT ME!
     */
    public Sender getSenderInfo(String username) throws SQLException {
        Connection connection = this.dataSource.getConnection();
        PreparedStatement st = connection.prepareStatement(dbDriver.getQueries()
                                                                   .getUserQueries()
                                                                   .getSql_GET_USER_INFO());
        ResultSet rs = null;
        Sender bean = new Sender();

        try {
            st.setString(1, username);
            rs = (ResultSet) st.executeQuery();

            if (rs.next()) {
                UserInfo info = new UserInfo();
                UserSettings settings = new UserSettings();
                bean.setName(rs.getString("user_name"));
                info.setCity(rs.getString("user_city"));
                settings.setSignature(rs.getString("user_signature"));
                bean.setTotalMess(rs.getInt("tot_mes"));
                bean.setStatus(rs.getInt("user_status"));
                bean.setSettings(settings);
                bean.setInfo(info);
            }
        } finally {
            if (rs != null) {
                rs.close();
            }

            st.close();
            connection.close();
        }

        return bean;
    }

    /**
     * DOCUMENT ME!
     *
     * @param id DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws SQLException DOCUMENT ME!
     */
    public String getUserName(int id) throws SQLException {
        Connection connection = this.dataSource.getConnection();
        PreparedStatement st = connection.prepareStatement(dbDriver.getQueries()
                                                                   .getUserQueries()
                                                                   .getSql_GET_USER_INFO_BY_ID());
        ResultSet rs = null;
        String name = null;

        try {
            st.setInt(1, id);
            rs = (ResultSet) st.executeQuery();

            if (rs.next()) {
                name = rs.getString("user_name");
            }
        } finally {
            if (rs != null) {
                rs.close();
            }

            st.close();
            connection.close();
        }

        return name;
    }

    /**
     * DOCUMENT ME!
     *
     * @param login
     *
     * @return
     *
     * @throws SQLException DOCUMENT ME!
     */
    public boolean isUserExist(String login) throws SQLException {
        Connection connection = this.dataSource.getConnection();
        PreparedStatement st = connection.prepareStatement(dbDriver.getQueries()
                                                                   .getUserQueries()
                                                                   .getSql_CHECK_USER());
        ResultSet rs = null;
        boolean success = false;

        try {
            st.setString(1, login);
            rs = (ResultSet) st.executeQuery();

            if (rs.next()) {
                success = true;
            }
        } finally {
            if (rs != null) {
                rs.close();
            }

            st.close();
            connection.close();
        }

        return success;
    }

    /**
     * DOCUMENT ME!
     *
     * @param email
     * @param login DOCUMENT ME!
     *
     * @return
     *
     * @throws SQLException DOCUMENT ME!
     */
    public User setNewPassword(String email, String login)
        throws SQLException {
        Connection connection = this.dataSource.getConnection();
        PreparedStatement st = connection.prepareStatement(dbDriver.getQueries()
                                                                   .getUserQueries()
                                                                   .getSql_CHECK_USER_WITH_EMAIL());
        ResultSet rs = null;
        String newpass = null;
        User user = new User();

        try {
            st.setString(1, email);
            st.setString(2, login);
            rs = (ResultSet) st.executeQuery();
            fillUser(st, user, false);

            if (user.getStatus() > 0) {
                newpass = generatePassword();
                st = connection.prepareStatement(dbDriver.getQueries()
                                                         .getUserQueries()
                                                         .getSql_CHANGE_PASSWORD());
                st.setString(1, MD5Digest.digest(login, newpass));
                st.setString(2, login);
                st.execute();
                user.setPassword(newpass);
            }
        } finally {
            if (rs != null) {
                rs.close();
            }

            st.close();
            connection.close();
        }

        return user;
    }

    /**
     * DOCUMENT ME!
     *
     * @param login
     * @param status
     *
     * @throws SQLException DOCUMENT ME!
     */
    public void setUserStatus(String login, int status)
        throws SQLException {
        Connection connection = this.dataSource.getConnection();

        PreparedStatement st = connection.prepareStatement(dbDriver.getQueries()
                                                                   .getUserQueries()
                                                                   .getSql_UPDATE_USER_STATUS());

        try {
            st.setInt(1, status);
            st.setString(2, login);
            st.execute();

            if (status < 7) {
                st = connection.prepareStatement(dbDriver.getQueries()
                                                         .getForumQueries()
                                                         .getSql_CLEAN_USER_MOD());
                st.setString(1, login);
                st.execute();
            }
        } finally {
            st.close();
            connection.close();
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param uid DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws SQLException DOCUMENT ME!
     */
    public User getUserInfoShort(int uid) throws SQLException {
        Connection connection = this.dataSource.getConnection();
        PreparedStatement st = connection.prepareStatement(dbDriver.getQueries()
                                                                   .getUserQueries()
                                                                   .getSql_GET_USER_INFO_BY_ID());
        ResultSet rs = null;
        User bean = new User();

        try {
            st.setInt(1, uid);
            rs = st.executeQuery();

            if (rs.next()) {
                bean.setName(rs.getString("user_name"));
                bean.setStatus(rs.getInt("user_status"));
            }
        } finally {
            if (rs != null) {
                rs.close();
            }

            st.close();
            connection.close();
        }

        return bean;
    }

    /**
     * DOCUMENT ME!
     *
     * @param profile DOCUMENT ME!
     * @param login DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws SQLException DOCUMENT ME!
     */
    public boolean updateUser(ProfileForm profile, String login)
        throws SQLException {
        Connection connection = this.dataSource.getConnection();
        PreparedStatement st = connection.prepareStatement(dbDriver.getQueries()
                                                                   .getUserQueries()
                                                                   .getSql_CHECK_USER());
        ResultSet rs = null;

        try {
            st.setString(1, profile.getLogin());
            rs = (ResultSet) st.executeQuery();

            if (rs.next()) {
                return false;
            } else {
                Calendar cl = Calendar.getInstance();
                cl.set(Integer.parseInt(profile.getDOB_year()),
                    Integer.parseInt(profile.getDOB_month()),
                    Integer.parseInt(profile.getDOB_day()));
                st = connection.prepareStatement(dbDriver.getQueries()
                                                         .getUserQueries()
                                                         .getSql_UPDATE_USER());

                st.setString(1, profile.getEmail());
                st.setString(2, profile.getHomePage());
                st.setString(3, profile.getIcq());
                st.setDate(4, new java.sql.Date(cl.getTime().getTime()));
                st.setString(5, profile.getPlace());
                st.setString(6, profile.getOccupation());
                st.setString(7, profile.getSignature());
                st.setInt(8, Integer.parseInt(profile.getMessPerPage()));
                st.setInt(9, Integer.parseInt(profile.getAutoLogin()));
                st.setInt(10, Integer.parseInt(profile.getShowEmail()));
                st.setString(11, login);

                st.execute();
                st = connection.prepareStatement(dbDriver.getQueries()
                                                         .getForumQueries()
                                                         .getSql_UPDATE_SUBSCRIBE());
                st.setString(1, profile.getEmail());
                st.setString(2, login);
                st.execute();

                return true;
            }
        } finally {
            if (rs != null) {
                rs.close();
            }

            st.close();
            connection.close();
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param login
     *
     * @throws SQLException DOCUMENT ME!
     */
    public void updateIntime(String login) throws SQLException {
        Connection connection = this.dataSource.getConnection();
        PreparedStatement st = connection.prepareStatement(dbDriver.getQueries()
                                                                   .getUserQueries()
                                                                   .getSql_SET_LAST_INTIME());

        try {
            st.setString(1, login);
            st.execute();
        } finally {
            st.close();
            connection.close();
        }
    }
}

⌨️ 快捷键说明

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