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

📄 postxml.java

📁 解觖java技术中后台无法上传数给的情况
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        if ((postTopic==null) || (postBody==null)) {
            throw new CreateException("Can't create a post with empty PostBody.");
        } else {
            java.sql.Timestamp postCreationDate1;
            java.sql.Timestamp postLastEditDate1;
            int postEditCount1;
            int postFormatOption1;
            int postOption1;
            int postStatus1;
            int postAttachCount1;

            try {
                if (memberName==null) memberName="";
                if (lastEditMemberName==null) lastEditMemberName="";
                postCreationDate1= XMLUtil.stringToSqlTimestampDefNow(postCreationDate);
                postLastEditDate1= XMLUtil.stringToSqlTimestampDefNull(postLastEditDate);
                if (postCreationIP==null) postCreationIP="0.0.0.0";
                if (postLastEditIP==null) postLastEditIP="0.0.0.0";
                postEditCount1= XMLUtil.stringToIntDef(postEditCount, 0);
                postFormatOption1= XMLUtil.stringToIntDef(postFormatOption, 0);
                postOption1= XMLUtil.stringToIntDef(postOption, 0);
                postStatus1= XMLUtil.stringToIntDef(postStatus, 0);
                if (postIcon==null) postIcon="";
                postAttachCount1= XMLUtil.stringToIntDef(postAttachCount, 0);
            } catch (NumberFormatException e) {
                throw new CreateException("Invalid data for a post. Expected a number.");
            }

            int memberID=0;
            if (!memberName.equals("")) {
                memberID=DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName);
            }

            postTopic=EnableHtmlTagFilter.filter(postTopic);
            postBody=EnableHtmlTagFilter.filter(postBody);
            postIcon=EnableHtmlTagFilter.filter(postIcon);
            this.postID = DAOFactory.getPostDAO().createPost(parentPostID,
                           parentForumID, parentThreadID,
                           memberID, memberName, lastEditMemberName,
                           postTopic, postBody, postCreationDate1, postLastEditDate1,
                           postCreationIP, postLastEditIP,
                           postEditCount1, postFormatOption1, postOption1,
                           postStatus1, postIcon, postAttachCount1);
        }
    }


    public void increasePostAttachCount()
    throws ObjectNotFoundException, AssertionException, DatabaseException {
        if (postID<0) {
            throw new ObjectNotFoundException("Can't update PostAttachCount on post that is not created yet.");
        }
        // we dont want the exception to throw below this
        int attachCount = DAOFactory.getAttachmentDAO().getNumberOfAttachments_inPost(postID);
        DAOFactory.getPostDAO().updateAttachCount(postID, attachCount);
    }


// ===============================================================
// ==================== STATIC EXPORT METHODS ====================
// ===============================================================
    public static void exportPost(XMLWriter xmlWriter, int postID)
    throws NumberFormatException, IOException, ExportException, ObjectNotFoundException,
    DatabaseException {
        Collection post1=ExportWebHelper.execSqlQuery(
                   "SELECT MemberName, LastEditMemberName,"+
                   " PostTopic, PostBody, PostCreationDate, PostLastEditDate,"+
                   " PostCreationIP, PostLastEditIP, PostEditCount, PostFormatOption,"+
                   " PostOption, PostStatus, PostIcon, PostAttachCount"+
                   " FROM "+PostDAO.TABLE_NAME+
                   " WHERE PostID="+Integer.toString(postID));
        Iterator iter=post1.iterator();
        String[] post=null;
        //try {
            try {
                if ( (post=(String[])iter.next()) ==null) {
                    throw new ExportException("Can't find data for postID="+postID);
                }
                if (post.length!=14) {
                    throw new ExportException("Error while retrieving data about post with postID="+postID);
                }
            } catch (NoSuchElementException e) {
                throw new ExportException("Can't find data for postID=="+postID);
            }

            //if I am here, that means I now have correct object post
            xmlWriter.startElement("Post");

            xmlWriter.startElement("MemberName");
            xmlWriter.writeData(post[0]);
            xmlWriter.endElement("MemberName");
            xmlWriter.startElement("LastEditMemberName");
            xmlWriter.writeData(post[1]);
            xmlWriter.endElement("LastEditMemberName");
            xmlWriter.startElement("PostTopic");
            xmlWriter.writeData(DisableHtmlTagFilter.filter(post[2]));
            xmlWriter.endElement("PostTopic");
            xmlWriter.startElement("PostBody");
            xmlWriter.writeData(DisableHtmlTagFilter.filter(post[3]));
            xmlWriter.endElement("PostBody");
            xmlWriter.startElement("PostCreationDate");
            xmlWriter.writeData(post[4]);
            xmlWriter.endElement("PostCreationDate");

            xmlWriter.startElement("PostLastEditDate");
            xmlWriter.writeData(post[5]);
            xmlWriter.endElement("PostLastEditDate");
            xmlWriter.startElement("PostCreationIP");
            xmlWriter.writeData(post[6]);
            xmlWriter.endElement("PostCreationIP");
            xmlWriter.startElement("PostLastEditIP");
            xmlWriter.writeData(post[7]);
            xmlWriter.endElement("PostLastEditIP");
            xmlWriter.startElement("PostEditCount");
            xmlWriter.writeData(post[8]);
            xmlWriter.endElement("PostEditCount");
            xmlWriter.startElement("PostFormatOption");
            xmlWriter.writeData(post[9]);
            xmlWriter.endElement("PostFormatOption");

            xmlWriter.startElement("PostOption");
            xmlWriter.writeData(post[10]);
            xmlWriter.endElement("PostOption");
            xmlWriter.startElement("PostStatus");
            xmlWriter.writeData(post[11]);
            xmlWriter.endElement("PostStatus");
            xmlWriter.startElement("PostIcon");
            xmlWriter.writeData(DisableHtmlTagFilter.filter(post[12]));
            xmlWriter.endElement("PostIcon");
            xmlWriter.startElement("PostAttachCount");
            xmlWriter.writeData(post[13]);
            xmlWriter.endElement("PostAttachCount");

            AttachmentXML.exportAttachmentList(xmlWriter, postID);
            exportPostList_Replies(xmlWriter, postID/*parentPostID*/);
            xmlWriter.endElement("Post");
         //} catch throw exportexception
    }

    public static void exportPostList_FirstPosts(XMLWriter xmlWriter, int parentThreadID)
    throws IOException, ExportException, ObjectNotFoundException, DatabaseException {
        Collection postIDs=ExportWebHelper.execSqlQuery(
                   "SELECT PostID"+
                   " FROM "+PostDAO.TABLE_NAME+
                   " WHERE ThreadID="+Integer.toString(parentThreadID)+
                   " AND ParentPostID=0");
        Iterator iter=postIDs.iterator();
        String[] postID=null;
        //try {
            xmlWriter.startElement("PostList");
            try {
                while ( (postID=(String[])iter.next()) !=null) {
                    if (postID.length!=1) {
                        throw new ExportException("Error while retrieving list of posts in threadID="+parentThreadID+".");
                    }
                    try {
                        int i=Integer.parseInt(postID[0]);
                        exportPost(xmlWriter, i);
                    } catch (NumberFormatException e) {
                        throw new ExportException("Error while retrieving list of posts in threadID="+parentThreadID+".");
                    }
                }
            } catch (NoSuchElementException e) {
                //no more database records
            }
            xmlWriter.endElement("PostList");
        //} catch throw exportexception
    }

    public static void exportPostList_Replies(XMLWriter xmlWriter, int parentPostID)
    throws IOException, ExportException, ObjectNotFoundException, DatabaseException {
        Collection postIDs=ExportWebHelper.execSqlQuery(
                   "SELECT PostID"+
                   " FROM "+PostDAO.TABLE_NAME+
                   " WHERE ParentPostID="+Integer.toString(parentPostID));
        Iterator iter=postIDs.iterator();
        String[] postID=null;
        //try {
            xmlWriter.startElement("PostList");
            try {
                while ( (postID=(String[])iter.next()) !=null) {
                    if (postID.length!=1) {
                        throw new ExportException("Error while retrieving list of replies to postID="+parentPostID+".");
                    }
                    try {
                        int i=Integer.parseInt(postID[0]);
                        exportPost(xmlWriter, i);
                    } catch (NumberFormatException e) {
                        throw new ExportException("Error while retrieving list of replies to postID="+parentPostID+".");
                    }
                }
            } catch (NoSuchElementException e) {
                //no more database records
            }
            xmlWriter.endElement("PostList");
        //} catch throw exportexception
    }

    //todo Igor important: merge exportPostList and exportPost so I use only one SQL query
    //same for category(list), ...
    public static void exportPostList(XMLWriter xmlWriter, int parentThreadID)
    throws IOException, ExportException, ObjectNotFoundException, DatabaseException {
        /* Export only root posts (of thread parentThreadID) here.
         * Replies will be exported under <PostList> of each root <Post>.
         */
        exportPostList_FirstPosts(xmlWriter, parentThreadID);
    }

}

⌨️ 快捷键说明

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