Java tutorial
/* * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */ package com.l2jfree.gameserver.communitybbs.bb; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.List; import javolution.util.FastList; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.l2jfree.L2DatabaseFactory; import com.l2jfree.gameserver.communitybbs.Manager.PostBBSManager; /** * @author Maktakien * */ public class Post { private final static Log _log = LogFactory.getLog(Post.class); public class CPost { public int postId; public String postOwner; public int postOwnerId; public long postDate; public int postTopicId; public int postForumId; public String postTxt; } private final List<CPost> _post; /** * @param restore * @param t */ //public enum ConstructorType {REPLY, CREATE }; public Post(String _PostOwner, int _PostOwnerID, long date, int tid, int _PostForumID, String txt) { _post = new FastList<CPost>(); CPost cp = new CPost(); cp.postId = 0; cp.postOwner = _PostOwner; cp.postOwnerId = _PostOwnerID; cp.postDate = date; cp.postTopicId = tid; cp.postForumId = _PostForumID; cp.postTxt = txt; _post.add(cp); insertindb(cp); } public void insertindb(CPost cp) { Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(con); PreparedStatement statement = con.prepareStatement( "INSERT INTO posts (post_id,post_owner_name,post_ownerid,post_date,post_topic_id,post_forum_id,post_txt) values (?,?,?,?,?,?,?)"); statement.setInt(1, cp.postId); statement.setString(2, cp.postOwner); statement.setInt(3, cp.postOwnerId); statement.setLong(4, cp.postDate); statement.setInt(5, cp.postTopicId); statement.setInt(6, cp.postForumId); statement.setString(7, cp.postTxt); statement.execute(); statement.close(); } catch (Exception e) { _log.warn("error while saving new Post to db ", e); } finally { L2DatabaseFactory.close(con); } } public Post(Topic t) { _post = new FastList<CPost>(); load(t); } public CPost getCPost(int id) { int i = 0; for (CPost cp : _post) { if (i++ == id) { return cp; } } return null; } public void deleteme(Topic t) { PostBBSManager.getInstance().delPostByTopic(t); Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(con); PreparedStatement statement = con .prepareStatement("DELETE FROM posts WHERE post_forum_id=? AND post_topic_id=?"); statement.setInt(1, t.getForumID()); statement.setInt(2, t.getID()); statement.execute(); statement.close(); } catch (Exception e) { _log.error(e.getMessage(), e); } finally { L2DatabaseFactory.close(con); } } /** * @param t */ private void load(Topic t) { Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(con); PreparedStatement statement = con.prepareStatement( "SELECT * FROM posts WHERE post_forum_id=? AND post_topic_id=? ORDER BY post_id ASC"); statement.setInt(1, t.getForumID()); statement.setInt(2, t.getID()); ResultSet result = statement.executeQuery(); while (result.next()) { CPost cp = new CPost(); cp.postId = result.getInt("post_id"); cp.postOwner = result.getString("post_owner_name"); cp.postOwnerId = result.getInt("post_ownerid"); cp.postDate = result.getLong("post_date"); cp.postTopicId = result.getInt("post_topic_id"); cp.postForumId = result.getInt("post_forum_id"); cp.postTxt = result.getString("post_txt"); _post.add(cp); } result.close(); statement.close(); } catch (Exception e) { _log.warn("data error on Post " + t.getForumID() + "/" + t.getID() + " : ", e); } finally { L2DatabaseFactory.close(con); } } /** * @param i */ public void updatetxt(int i) { Connection con = null; try { CPost cp = getCPost(i); con = L2DatabaseFactory.getInstance().getConnection(con); PreparedStatement statement = con.prepareStatement( "UPDATE posts SET post_txt=? WHERE post_id=? AND post_topic_id=? AND post_forum_id=?"); statement.setString(1, cp.postTxt); statement.setInt(2, cp.postId); statement.setInt(3, cp.postTopicId); statement.setInt(4, cp.postForumId); statement.execute(); statement.close(); } catch (Exception e) { _log.warn("error while saving new Post to db ", e); } finally { L2DatabaseFactory.close(con); } } }