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

📄 threadxml.java

📁 解觖java技术中后台无法上传数给的情况
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            throw new CreateException("Found favorite-thread record that is not assigned to any known thread.");
        } else if (parentForumID<0) {
            throw new CreateException("Can't create a favorite-thread, because no parent forum assigned yet.");
        }

        java.sql.Timestamp favoriteCreationDate1;
        int favoriteType1;
        int favoriteOption1;
        int favoriteStatus1;

        try {
            if (memberName==null) memberName="";
            favoriteCreationDate1= XMLUtil.stringToSqlTimestampDefNow(favoriteCreationDate);
            favoriteType1= XMLUtil.stringToIntDef(favoriteType, 0);
            favoriteOption1= XMLUtil.stringToIntDef(favoriteOption, 0);
            favoriteStatus1= XMLUtil.stringToIntDef(favoriteStatus, 0);
        } catch (NumberFormatException e) {
            throw new CreateException("Invalid data for a favorite-thread. Expected a number.");
        }

        //todo Igor: Shoud I allow memberID==0 here?
        int memberID=0;
        if (!memberName.equals("")) {
            memberID=DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName);
        }
        DAOFactory.getFavoriteThreadDAO().create(
             memberID, threadID, parentForumID,
             favoriteCreationDate1, favoriteType1, favoriteOption1, favoriteStatus1);
    }

    public void increaseReplyCount()
        throws ObjectNotFoundException, DatabaseException {

        if (threadID<0) {
            throw new ObjectNotFoundException("Can't update ThreadReplyCount on thread that is not created yet.");
        }
        DAOFactory.getThreadDAO().increaseReplyCount(threadID);
    }

    public void updateLastPostMemberName(String value)
        throws ObjectNotFoundException, DatabaseException, ForeignKeyNotFoundException {
        if (threadID<0) {
            throw new ObjectNotFoundException("Can't update LastPostMemberName on thread that is not created yet.");
        }
        DAOFactory.getThreadDAO().updateLastPostMemberName(threadID, value);
    }

    public void updateLastPostDate(Timestamp value)
    throws ObjectNotFoundException, DatabaseException {
        if (threadID<0) {
            throw new ObjectNotFoundException("Can't update ThreadLastPostDate on thread that is not created yet.");
        }
        DAOFactory.getThreadDAO().updateLastPostDate(threadID, value);
    }


// ===============================================================
// ==================== STATIC EXPORT METHODS ====================
// ===============================================================
    public static void exportThreadWatchesForThread(XMLWriter xmlWriter, int threadID)
    throws IOException, ExportException, NumberFormatException, ObjectNotFoundException,
    DatabaseException {
        Collection threadWatches=ExportWebHelper.execSqlQuery(
                   "SELECT MemberID, WatchType, WatchOption, WatchStatus, WatchCreationDate, WatchLastSentDate, WatchEndDate"+
                   " FROM "+WatchDAO.TABLE_NAME+
                   " WHERE ThreadID="+Integer.toString(threadID));//AND ForumID=0 AND CategoryID=0
        Iterator iter=threadWatches.iterator();
        String[] threadWatch=null;
        //try {
            xmlWriter.startElement("ThreadWatchList");
            try {
                while ( (threadWatch=(String[])iter.next()) !=null) {
                    if (threadWatch.length!=7) {
                        throw new ExportException("Error while retrieving data about thread watch for threadID=="+threadID);
                    }
                    String memberName=DAOFactory.getMemberDAO().getMember_forPublic(Integer.parseInt(threadWatch[0])).getMemberName();
                    xmlWriter.startElement("ThreadWatch");
                    xmlWriter.startElement("MemberName");
                    xmlWriter.writeData(memberName);
                    xmlWriter.endElement("MemberName");
                    xmlWriter.startElement("WatchType");
                    xmlWriter.writeData(threadWatch[1]);
                    xmlWriter.endElement("WatchType");
                    xmlWriter.startElement("WatchOption");
                    xmlWriter.writeData(threadWatch[2]);
                    xmlWriter.endElement("WatchOption");
                    xmlWriter.startElement("WatchStatus");
                    xmlWriter.writeData(threadWatch[3]);
                    xmlWriter.endElement("WatchStatus");
                    xmlWriter.startElement("WatchCreationDate");
                    xmlWriter.writeData(threadWatch[4]);
                    xmlWriter.endElement("WatchCreationDate");
                    xmlWriter.startElement("WatchLastSentDate");
                    xmlWriter.writeData(threadWatch[5]);
                    xmlWriter.endElement("WatchLastSentDate");
                    xmlWriter.startElement("WatchEndDate");
                    xmlWriter.writeData(threadWatch[6]);
                    xmlWriter.endElement("WatchEndDate");
                    xmlWriter.endElement("ThreadWatch");
                }
            } catch (NoSuchElementException e) {
                //no more database records
            }
            xmlWriter.endElement("ThreadWatchList");
         //} catch throw exportexception
    }

    public static void exportFavoriteThreadsForThread(XMLWriter xmlWriter, int threadID)
    throws IOException, ExportException, NumberFormatException, ObjectNotFoundException,
    DatabaseException {
        Collection favoriteThreads=ExportWebHelper.execSqlQuery(
                   "SELECT MemberID, FavoriteCreationDate,"+
                   " FavoriteType, FavoriteOption, FavoriteStatus"+
                   " FROM "+FavoriteThreadDAO.TABLE_NAME+
                   " WHERE ThreadID="+Integer.toString(threadID));
        Iterator iter=favoriteThreads.iterator();
        String[] favoriteThread=null;
        //try {
            xmlWriter.startElement("FavoriteThreadList");
            try {
                while ( (favoriteThread=(String[])iter.next()) !=null) {
                    if (favoriteThread.length!=5) {
                        throw new ExportException("Error while retrieving data about favorite-thread records for threadID=="+threadID);
                    }
                    String memberName=DAOFactory.getMemberDAO().getMember_forPublic(Integer.parseInt(favoriteThread[0])).getMemberName();
                    xmlWriter.startElement("FavoriteThread");
                    xmlWriter.startElement("MemberName");
                    xmlWriter.writeData(memberName);
                    xmlWriter.endElement("MemberName");
                    xmlWriter.startElement("FavoriteCreationDate");
                    xmlWriter.writeData(favoriteThread[1]);
                    xmlWriter.endElement("FavoriteCreationDate");
                    xmlWriter.startElement("FavoriteType");
                    xmlWriter.writeData(favoriteThread[2]);
                    xmlWriter.endElement("FavoriteType");
                    xmlWriter.startElement("FavoriteOption");
                    xmlWriter.writeData(favoriteThread[3]);
                    xmlWriter.endElement("FavoriteOption");
                    xmlWriter.startElement("FavoriteStatus");
                    xmlWriter.writeData(favoriteThread[4]);
                    xmlWriter.endElement("FavoriteStatus");
                    xmlWriter.endElement("FavoriteThread");
                }
            } catch (NoSuchElementException e) {
                //no more database records
            }
            xmlWriter.endElement("FavoriteThreadList");
         //} catch throw exportexception
    }

    public static void exportThread(XMLWriter xmlWriter, int threadID)
    throws NumberFormatException, IOException, ExportException, ObjectNotFoundException,
    DatabaseException {
        Collection thread1=ExportWebHelper.execSqlQuery(
                   "SELECT MemberName, LastPostMemberName,"+
                   " ThreadTopic, ThreadBody, ThreadVoteCount, ThreadVoteTotalStars,"+
                   " ThreadCreationDate, ThreadLastPostDate, ThreadType, ThreadOption,"+
                   " ThreadStatus, ThreadHasPoll, ThreadViewCount, ThreadReplyCount,"+
                   " ThreadIcon, ThreadDuration, ThreadAttachCount"+
                   " FROM "+ThreadDAO.TABLE_NAME+
                   " WHERE ThreadID="+Integer.toString(threadID));
        Iterator iter=thread1.iterator();
        String[] thread=null;
        //try {
            try {
                if ( (thread=(String[])iter.next()) ==null) {
                    throw new ExportException("Can't find data for threadID=="+threadID);
                }
                if (thread.length!=17) {
                    throw new ExportException("Error while retrieving data about thread with threadID=="+threadID);
                }
            } catch (NoSuchElementException e) {
                throw new ExportException("Can't find data for threadID=="+threadID);
            }

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

            xmlWriter.startElement("MemberName");
            xmlWriter.writeData(thread[0]);
            xmlWriter.endElement("MemberName");
            xmlWriter.startElement("ThreadLastPostMemberName");
            xmlWriter.writeData(thread[1]);
            xmlWriter.endElement("ThreadLastPostMemberName");
            xmlWriter.startElement("ThreadTopic");
            xmlWriter.writeData(DisableHtmlTagFilter.filter(thread[2]));
            xmlWriter.endElement("ThreadTopic");
            xmlWriter.startElement("ThreadBody");
            xmlWriter.writeData(DisableHtmlTagFilter.filter(thread[3]));
            xmlWriter.endElement("ThreadBody");
            xmlWriter.startElement("ThreadVoteCount");
            xmlWriter.writeData(thread[4]);
            xmlWriter.endElement("ThreadVoteCount");

            xmlWriter.startElement("ThreadVoteTotalStars");
            xmlWriter.writeData(thread[5]);
            xmlWriter.endElement("ThreadVoteTotalStars");
            xmlWriter.startElement("ThreadCreationDate");
            xmlWriter.writeData(thread[6]);
            xmlWriter.endElement("ThreadCreationDate");
            xmlWriter.startElement("ThreadLastPostDate");
            xmlWriter.writeData(thread[7]);
            xmlWriter.endElement("ThreadLastPostDate");
            xmlWriter.startElement("ThreadType");
            xmlWriter.writeData(thread[8]);
            xmlWriter.endElement("ThreadType");
            xmlWriter.startElement("ThreadOption");
            xmlWriter.writeData(thread[9]);
            xmlWriter.endElement("ThreadOption");

            xmlWriter.startElement("ThreadStatus");
            xmlWriter.writeData(thread[10]);
            xmlWriter.endElement("ThreadStatus");
            xmlWriter.startElement("ThreadHasPoll");
            xmlWriter.writeData(thread[11]);
            xmlWriter.endElement("ThreadHasPoll");
            xmlWriter.startElement("ThreadViewCount");
            xmlWriter.writeData(thread[12]);
            xmlWriter.endElement("ThreadViewCount");
            xmlWriter.startElement("ThreadReplyCount");
            xmlWriter.writeData(thread[13]);
            xmlWriter.endElement("ThreadReplyCount");
            xmlWriter.startElement("ThreadIcon");
            xmlWriter.writeData(DisableHtmlTagFilter.filter(thread[14]));
            xmlWriter.endElement("ThreadIcon");

            xmlWriter.startElement("ThreadDuration");
            xmlWriter.writeData(thread[15]);
            xmlWriter.endElement("ThreadDuration");

            xmlWriter.startElement("ThreadAttachCount");
            xmlWriter.writeData(thread[16]);
            xmlWriter.endElement("ThreadAttachCount");
            exportThreadWatchesForThread(xmlWriter, threadID);
            exportFavoriteThreadsForThread(xmlWriter, threadID);
            PostXML.exportPostList(xmlWriter, threadID);

            xmlWriter.endElement("Thread");
         //} catch throw exportexception
    }

    //todo Igor important: merge exportThreadList and exportThread so I use only one SQL query
    //same for category(list), ...
    public static void exportThreadList(XMLWriter xmlWriter, int parentForumID)
    throws IOException, ExportException, ObjectNotFoundException, DatabaseException {
        Collection threadIDs=ExportWebHelper.execSqlQuery(
                   "SELECT ThreadID"+
                   " FROM "+ThreadDAO.TABLE_NAME+
                   " WHERE ForumID="+Integer.toString(parentForumID));
        Iterator iter=threadIDs.iterator();
        String[] threadID=null;
        //try {
            xmlWriter.startElement("ThreadList");
            try {
                while ( (threadID=(String[])iter.next()) !=null) {
                    if (threadID.length!=1) {
                        throw new ExportException("Error while retrieving list of threads.");
                    }
                    try {
                        int i=Integer.parseInt(threadID[0]);
                        exportThread(xmlWriter, i);
                    } catch (NumberFormatException e) {
                        throw new ExportException("Error while retrieving list of threads.");
                    }
                }
            } catch (NoSuchElementException e) {
                //no more database records
            }
            xmlWriter.endElement("ThreadList");
         //} catch throw exportexception
    }


}

⌨️ 快捷键说明

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