📄 forumdao.java
字号:
st.close();
connection.close();
}
return modFlag;
}
/**
* DOCUMENT ME!
*
* @param fid
*
* @throws SQLException
* DOCUMENT ME!
*/
public void lockForum(String fid, int locked) throws SQLException {
Connection connection = this.dataSource.getConnection();
PreparedStatement st = connection.prepareStatement(dbDriver
.getQueries().getForumQueries().getSql_GET_FORUM_LOCKED());
ResultSet rs = null;
int id = Integer.parseInt(fid);
try {
st.setInt(1, id);
rs = st.executeQuery();
if (rs.next()) {
st = connection.prepareStatement(dbDriver.getQueries()
.getForumQueries().getSql_SET_FORUM_LOCKED_STATUS());
st.setInt(1, locked);
st.setInt(2, id);
st.execute();
}
} finally {
if (rs != null) {
rs.close();
}
st.close();
connection.close();
}
}
/**
* DOCUMENT ME!
*
* @param tid
*
* @throws SQLException
* DOCUMENT ME!
*/
public void lockThread(String tid) throws SQLException {
Connection connection = this.dataSource.getConnection();
PreparedStatement st = connection.prepareStatement(dbDriver
.getQueries().getForumQueries().getSql_GET_THREAD_LOCKED());
ResultSet rs = null;
int id = Integer.parseInt(tid);
try {
st.setInt(1, id);
rs = st.executeQuery();
if (rs.next() && (rs.getInt(1) < 2)) {
int newStatus = Math.abs(rs.getInt(1) - 1);
st = connection.prepareStatement(dbDriver.getQueries()
.getForumQueries().getSql_SET_THREAD_LOCKED_STATUS());
st.setInt(1, newStatus);
st.setInt(2, id);
st.execute();
}
} finally {
if (rs != null) {
rs.close();
}
st.close();
connection.close();
}
}
/**
* DOCUMENT ME!
*
* @param tid
* @param nfid
*
* @throws SQLException
* DOCUMENT ME!
*/
public void moveThread(String tid, String nfid) throws SQLException {
Connection connection = this.dataSource.getConnection();
PreparedStatement st = connection.prepareStatement(dbDriver
.getQueries().getForumQueries().getSql_MOVE_THREAD());
try {
st.setInt(1, Integer.parseInt(nfid));
st.setInt(2, Integer.parseInt(tid));
st.execute();
} finally {
st.close();
connection.close();
}
}
/**
* DOCUMENT ME!
*
* @param forum
* @param st
* DOCUMENT ME!
*
* @throws SQLException
* DOCUMENT ME!
*/
private void setLastMessage(Forum forum, PreparedStatement st)
throws SQLException {
ResultSet rs = null;
try {
st.setInt(1, forum.getForumid());
rs = (ResultSet) st.executeQuery();
Message last = new Message();
if (rs.next()) {
last.setSender(rs.getString("m_from"));
last.setIntime(rs.getTimestamp("t_stamp"));
last.setCentents(rs.getString("cont"));
last.setThreadSort(rs.getInt("sortby"));
last.setId(rs.getInt("id"));
forum.setLastMessThreadId(rs.getInt("tid"));
}
forum.setLastMessage(last);
} finally {
if (rs != null) {
rs.close();
}
}
}
private void setLastMessage(Topic thread, PreparedStatement st)
throws SQLException {
ResultSet rs = null;
try {
st.setInt(1, thread.getThreadid());
rs = (ResultSet) st.executeQuery();
Message last = new Message();
if (rs.next()) {
last.setSender(rs.getString("sender"));
last.setIntime(rs.getTimestamp("intime"));
last.setCentents(rs.getString("centents"));
last.setId(rs.getInt("id"));
}
thread.setLastMessage(last);
// TODO work around bug 863191
thread.setSubject(getThreadSubject(Integer.toString(thread
.getThreadid())));
} finally {
if (rs != null) {
rs.close();
}
}
}
private void setRootMessage(LastTopic topic, PreparedStatement st)
throws SQLException {
ResultSet rs = null;
try {
st.setInt(1, topic.getThreadid());
rs = (ResultSet) st.executeQuery();
Message root = new Message();
if (rs.next()) {
root.setSender(rs.getString("sender"));
root.setIntime(rs.getTimestamp("t_stamp"));
root.setCentents(rs.getString("centents"));
root.setId(rs.getInt("id"));
root.setHeading(rs.getString("subject"));
root.setIp(rs.getString("ip"));
root.setThreadid(rs.getInt("tid"));
root.setThreadSort(rs.getInt("sortby"));
}
topic.setRootMessage(root);
topic.setSubject(root.getHeading());
} finally {
if (rs != null) {
rs.close();
}
}
}
/**
* DOCUMENT ME!
*
* @param messageForm
*
* @throws SQLException
* DOCUMENT ME!
*/
public void updateMessage(MessageForm messageForm) throws SQLException {
Connection connection = this.dataSource.getConnection();
PreparedStatement st = connection.prepareStatement(dbDriver
.getQueries().getForumQueries().getSql_UPDATE_MESSAGE());
try {
st.setString(1, messageForm.getText());
st.setString(2, messageForm.getTitle());
st.setInt(3, Integer.parseInt(messageForm.getMid()));
st.execute();
} finally {
st.close();
connection.close();
}
}
private void updateThreadIntime(String tid, Timestamp intime)
throws SQLException {
Connection connection = this.dataSource.getConnection();
PreparedStatement st = connection.prepareStatement(dbDriver
.getQueries().getForumQueries().getSql_UPDATE_THREAD_LINTIME());
try {
st.setTimestamp(1, intime);
st.setInt(2, Integer.parseInt(tid));
st.execute();
} finally {
st.close();
connection.close();
}
}
/**
* DOCUMENT ME!
*
* @param gid
*
* @return
* @throws SQLException
* DOCUMENT ME!
*/
public Group getGroupInfo(String gid) throws SQLException {
Connection connection = this.dataSource.getConnection();
PreparedStatement st = connection.prepareStatement(dbDriver
.getQueries().getForumQueries().getSql_GET_GROUP_INFO());
ResultSet rs = null;
Group group = new Group();
try {
st.setInt(1, Integer.parseInt(gid));
rs = st.executeQuery();
if (rs.next()) {
group.setName(rs.getString("group_name"));
group.setSort(rs.getString("group_sort"));
group.setGroupid(rs.getInt("groupid"));
}
} finally {
if (rs != null) {
rs.close();
}
st.close();
connection.close();
}
return group;
}
/**
* DOCUMENT ME!
*
* @param form
*
* @throws SQLException
* DOCUMENT ME!
*/
public void updateGroup(GroupForm form) throws SQLException {
Connection connection = this.dataSource.getConnection();
PreparedStatement st = connection.prepareStatement(dbDriver
.getQueries().getForumQueries().getSql_UPDATE_GROUP());
try {
st.setString(1, form.getGroup_name());
st.setString(2, form.getGroup_sort());
st.setInt(3, Integer.parseInt(form.getGid()));
st.execute();
} finally {
st.close();
connection.close();
}
}
/**
* DOCUMENT ME!
*
* @param form
*
* @throws SQLException
* DOCUMENT ME!
*/
public void updateForum(ForumForm form) throws SQLException {
Connection connection = this.dataSource.getConnection();
PreparedStatement st = connection.prepareStatement(dbDriver
.getQueries().getForumQueries().getSql_UPDATE_FORUM());
try {
st.setString(1, form.getForum_name());
st.setString(2, form.getForum_desc());
st.setInt(3, Integer.parseInt(form.getGroupid()));
st.setString(4, form.getForum_sort());
st.setInt(5, Integer.parseInt(form.getForumid()));
st.execute();
} finally {
st.close();
connection.close();
}
}
/**
* DOCUMENT ME!
*
* @param form
* @param recordsData
* @param showInvisible
*
* @throws InstantiationException
* DOCUMENT ME!
* @throws IllegalAccessException
* DOCUMENT ME!
* @throws InvocationTargetException
* DOCUMENT ME!
* @throws NoSuchMethodException
* DOCUMENT ME!
* @throws SQLException
* DOCUMENT ME!
*/
public void processSearch(SearchForm form, RecordsData recordsData,
boolean showInvisible) throws InstantiationException,
IllegalAccessException, InvocationTargetException,
NoSuchMethodException, SQLException {
Connection connection = this.dataSource.getConnection();
StringBuffer queryString = new StringBuffer();
if (showInvisible) {
queryString.append(" WHERE (");
} else {
queryString.append(" WHERE jrf_forum.locked < 3 AND (");
}
String[] fields = { " centents", " heading" };
String searchType = (form.getType());
String search = MySQLCodec.encode(form.getSearch());
if (searchType.equals(IConst.VALUES.WHOLE)) {
queryString.append(fields[0]);
queryString.append(dbDriver.getQueries().getSql_LIKE());
queryString.append("'%");
queryString.append(search);
queryString.append("%'");
queryString.append(dbDriver.getQueries().getSql_OR());
queryString.append(fields[1]);
queryString.append(dbDriver.getQueries().getSql_LIKE());
queryString.append("'%");
queryString.append(search);
queryString.append("%'");
} else {
String term = "";
if (searchType.equals(IConst.VALUES.ALL)) {
term = dbDriver.getQueries().getSql_AND();
} else {
term = dbDriver.getQueries().getSql_OR();
}
for (int i = 0; i < fields.length; i++) {
queryString.append("(");
StringTokenizer tokens = new StringTokenizer(search, " ");
while (tokens.hasMoreTokens()) {
String token = tokens.nextToken();
queryString.append(fields[i]);
queryString.append(dbDriver.getQueries().getSql_LIKE());
queryString.append("'%");
queryString.append(token);
queryString.append("%'");
if (tokens.hasMoreTokens()) {
queryString.append(term);
}
}
queryString.append(")");
if (i < (fields.length - 1)) {
queryString.append(dbDriver.getQueries().getSql_OR());
}
}
}
queryString.append(")");
queryString.append(dbDriver.getQueries().getForumQueries()
.getSql_SEARCH_QUERY_END());
PreparedStatement st = connection.prepareStatement(dbDriver
.getQueries().getForumQueries().getSql_SEARCH_QUERY_SUFF()
+ queryString.toString());
ResultSet rs = null;
try {
rs = st.executeQuery();
recordsData.fillRecords(rs, Mapping.getInstance().SearchMapping,
SearchResult.class);
st = connection.prepareStatement(dbDriver.getQueries()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -