📄 userdao.java
字号:
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 + -