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

📄 tradeinfo.java

📁 用java实现的一个bbs的portal
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/**
 * Created by IntelliJ IDEA.
 * User: Administrator
 * Date: Jul 18, 2003
 * Time: 4:06:17 PM
 * To change this template use Options | File Templates.
 */
package Kernel;

import DBConnection.DBBridge;
import DBConnection.DBConnector;

import java.util.Vector;
import java.util.Hashtable;
import java.util.StringTokenizer;
import java.sql.ResultSet;

import ConnectAdapter.ServerRecorder;

public class TradeInfo {
    short Type;
    String Commodity;
    String Description;
    String Contact;
    String Date;
    String XMLFile;

    public static Hashtable QueryCache = new Hashtable();
    public static Hashtable QueryLastDate = new Hashtable();

    public TradeInfo(){

    }

    public TradeInfo(short type,String commodity,String description,String contact,String date,String xmlfile){
        Type = type;
        Commodity = commodity;
        Description = description;
        Contact = contact;
        Date = date;
        XMLFile = xmlfile;
    }

    public boolean insertTradeInfo(){
        //suix add,for the max size of varchar in sql server is 8000 char
        if(Description.length()>8000)
        {
            System.err.println("articlelength>8000,could not insert");
             return false;
        }
        try{
            String sql = "INSERT INTO JIAOYIXINXI" +
                    "(TRADE, COMMODITY, DESCRIPTION,CONTACT, POSTDATE, XMLFILE) " +
                    "VALUES ("+getType()+", '"+getCommodity()+
                    "', '"+getDescription()+"','"+getContact()+"', '"+getDate()+"', '"+getXMLFile()+"') ";
            System.out.println("TradeInfo : "+sql);
            DBConnector.getInstance().stmt.execute(sql);
            return true;
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return false;
    }

    public  Vector getBBSInfo(String keyword){
        DBBridge bridge = new DBBridge();
        Vector vec = new Vector();
        try{
            String sql = "select * from BBSXINXI WHERE (TITLE LIKE '%"+keyword+"%' OR CONTENT LIKE '%"+keyword+"%') order by POSTDATE desc";
            System.out.println(sql);
            //ResultSet rs = DBConnector.getInstance().stmt.executeQuery(sql);
            ResultSet rs = bridge.getStmt().executeQuery(sql);
            while (rs.next()){
                String Trade = "-1";
                String XMLFile = comTool.getChineseStr(rs.getString("XMLFILE"));
                String Bbsname = comTool.getChineseStr(rs.getString("BBSNAME"));
                String Boardname = comTool.getChineseStr(rs.getString("BOARDNAME"));
                String Author = comTool.getChineseStr(rs.getString("AUTHOR"));
                String Alias = comTool.getChineseStr(rs.getString("ALIAS"));
                String Title = comTool.getChineseStr(rs.getString("TITLE"));
                String Content = comTool.getChineseStr(rs.getString("CONTENT"));
                String PostDate = comTool.getChineseStr(rs.getString("POSTDATE"));
                String Ip = comTool.getChineseStr(rs.getString("IP"));
                PostDate = PostDate.substring(0,PostDate.length()-2);

                String tradeinfo = "BBSINFO"+"%"+Trade+"%"+keyword+"%"+Title+"%"+Content+"%"+PostDate+"%"+XMLFile
                        +"%"+Bbsname+"%"+Boardname+"%"+Author+"%"+Alias+"%"+Ip;
                vec.add(tradeinfo);
            }
            bridge.setConnectionSwitch("off");
            return vec;
        }catch(Exception ex){
            ex.printStackTrace();
        }
        bridge.setConnectionSwitch("off");
        return null;
    }

    private Vector checkQueryCache(String tradetype,String kind, String commodity, String keywords){
        String keystr = tradetype+"_"+kind+"_"+commodity+"_"+keywords;
        return (Vector)QueryCache.get(keystr);
    }
 //重新set cache
    private synchronized void setQueryCache(String tradetype,String kind, String commodity,String keywords,Vector vec,String postdate){
        if (vec.size() > 0){
            String keystr = tradetype+"_"+kind+"_"+commodity+"_"+keywords;
            QueryCache.put(keystr,vec);
            if (postdate != null)
                QueryLastDate.put(keystr,postdate);
        }
    }
//只是往cache里添加
    private synchronized void addQueryCache(String tradetype,String kind, String commodity,String keyword,Vector vec,String postdate){
        if (vec.size() >0){
            String keystr = tradetype+"_"+kind+"_"+commodity+"_"+keyword;
            Vector queryVec = (Vector)QueryCache.get(keystr);
            vec.addAll(queryVec);
            QueryCache.put(keystr,vec);
            if (postdate != null)
                QueryLastDate.put(keystr,postdate);
        }
    }

/*
    public  Vector  getRecentTradeInfo(String tradetype,String commodity,String postdate,Vector oldvec){
        DBBridge bridge = new DBBridge();
        Vector vec = new Vector();
        String recentDate = null;
        try{
            String sql = "select TRADE,COMMODITY,DESCRIPTION,CONTACT,JIAOYIXINXI.POSTDATE,JIAOYIXINXI.XMLFILE,BBSNAME,BOARDNAME,AUTHOR,ALIAS,TITLE,CONTENT,IP" +
                    " from JIAOYIXINXI,BBSXINXI WHERE (TRADE = "+
                    tradetype+") AND (COMMODITY = '"+commodity+"') and (JIAOYIXINXI.XMLFILE = BBSXINXI.XMLFILE)"
                    +"and (JIAOYIXINXI.POSTDATE > '"+postdate+"') order by JIAOYIXINXI.POSTDATE desc";
            System.out.println(sql);
            ResultSet rs = bridge.getStmt().executeQuery(sql);
            int count = 0;
            while ((rs != null)&&(rs.next())){
                int Trade = rs.getInt("TRADE");
                String Commodity = comTool.getChineseStr(rs.getString("COMMODITY"));
                String Description = comTool.getChineseStr(rs.getString("DESCRIPTION"));
                String Contact = comTool.getChineseStr(rs.getString("CONTACT"));
                String PostDate = comTool.getChineseStr(rs.getString("POSTDATE"));
                PostDate = PostDate.substring(0,PostDate.length()-2);
                String XMLFile = rs.getString("XMLFILE");
                String Bbsname = comTool.getChineseStr(rs.getString("BBSNAME"));
                String Boardname = comTool.getChineseStr(rs.getString("BOARDNAME"));
                String Author = comTool.getChineseStr(rs.getString("AUTHOR"));
                String Alias = comTool.getChineseStr(rs.getString("ALIAS"));
                String Ip = comTool.getChineseStr(rs.getString("IP"));
                String tradeinfo = "TRADEINFO"+"%"+Trade+"%"+Commodity+"%"+Description+"%"+Contact+"%"+PostDate+"%"+XMLFile
                        +"%"+Bbsname+"%"+Boardname+"%"+Author+"%"+Alias+"%"+Ip;
                count ++;
                if ( count == 1)
                    recentDate = PostDate;
                vec.add(tradeinfo);
            }
        }catch(Exception ex){
            ex.printStackTrace();
        }
        bridge.setConnectionSwitch("off");
        addQueryCache(tradetype,commodity,vec,recentDate);
        return vec;
    }
*/
    //****
    //******
    public Vector getRecentTradeInfo(String tradetype,String kind, String commodity, String keywords,String postdate,Vector oldvec){

        Vector vec = new Vector();
        String recentDate = null;
        Vector cachevec = checkQueryCache(tradetype,kind,commodity,keywords);
        if (cachevec != null){
            return cachevec;
        }
        //放在此比放在首句好
        DBBridge bridge = new DBBridge();
        try{
            String sql = "";
            if ((kind == null)&&(commodity == null)){   //query in BBS
                StringTokenizer keywordVec = null;
                if (keywords != null){
                    keywordVec = new StringTokenizer(keywords, "|");
                    String keywordStr = "%";
                    while (keywordVec.hasMoreTokens()){
                        keywordStr = keywordStr + keywordVec.nextToken().trim() + "%";
                    }
                    sql = "select TRADE,COMMODITY,DESCRIPTION,CONTACT,JIAOYIXINXI.POSTDATE,JIAOYIXINXI.XMLFILE,BBSNAME,BOARDNAME,AUTHOR,ALIAS,TITLE,CONTENT,IP"+
                            " from JIAOYIXINXI,BBSXINXI WHERE (TRADE = "+tradetype+")AND (TITLE like '"+keywordStr+"')AND (CONTENT like '"+keywordStr+"') " +
                            "and (JIAOYIXINXI.XMLFILE = BBSXINXI.XMLFILE) order by JIAOYIXINXI.POSTDATE desc";
                }else{
                    System.err.println("ERROR: No Keyword Found !");
                    return null;
                }
            }else{   //queey in Trade
                StringTokenizer keywordVec = null;
                if (keywords != null){
                    keywordVec = new StringTokenizer(keywords, "|");
                    String keywordStr = "%";
                    while (keywordVec.hasMoreTokens()){
                        keywordStr = keywordStr + keywordVec.nextToken().trim() + "%";
                    }
                    sql = "select TRADE,COMMODITY,DESCRIPTION,CONTACT,JIAOYIXINXI.POSTDATE,JIAOYIXINXI.XMLFILE,BBSNAME,BOARDNAME,AUTHOR,ALIAS,TITLE,CONTENT,IP"+
                            " from JIAOYIXINXI,BBSXINXI WHERE (TRADE = "+
                            tradetype+") AND (COMMODITY = '"+commodity+"') AND (TITLE like '"+keywordStr+"')AND (CONTENT like '"+keywordStr+"') and (JIAOYIXINXI.XMLFILE = BBSXINXI.XMLFILE) order by JIAOYIXINXI.POSTDATE desc";
                }else{
                    sql = "select TRADE,COMMODITY,DESCRIPTION,CONTACT,JIAOYIXINXI.POSTDATE,JIAOYIXINXI.XMLFILE,BBSNAME,BOARDNAME,AUTHOR,ALIAS,TITLE,CONTENT,IP"+
                            " from JIAOYIXINXI,BBSXINXI WHERE (TRADE = "+
                            tradetype+") AND (COMMODITY = '"+commodity+"') and (JIAOYIXINXI.XMLFILE = BBSXINXI.XMLFILE) order by JIAOYIXINXI.POSTDATE desc";

                }
            }
            System.err.println(sql);
            ResultSet rs = bridge.getStmt().executeQuery(sql);
            int count = 0;
            while ((rs != null)&&(rs.next())){
                //TRADEINFO%tradetype%commodity$description%contact%postdata% xmlfile%BBSName%BoardName%Author%Alais%IP
                int Trade = rs.getInt("TRADE");
                String Commodity = comTool.getChineseStr(rs.getString("COMMODITY"));
                String Description = comTool.getChineseStr(rs.getString("DESCRIPTION"));
                String Contact = comTool.getChineseStr(rs.getString("CONTACT"));
                String PostDate = comTool.getChineseStr(rs.getString("POSTDATE"));
                PostDate = PostDate.substring(0,PostDate.length()-2);
                String XMLFile = rs.getString("XMLFILE");
                String Bbsname = comTool.getChineseStr(rs.getString("BBSNAME"));
                String Boardname = comTool.getChineseStr(rs.getString("BOARDNAME"));
                String Author = comTool.getChineseStr(rs.getString("AUTHOR"));
                String Alias = comTool.getChineseStr(rs.getString("ALIAS"));
                String Ip = comTool.getChineseStr(rs.getString("IP"));
                String tradeinfo = "TRADEINFO"+"%"+Trade+"%"+Commodity+"%"+Description+"%"+Contact+"%"+PostDate+"%"+XMLFile
                        +"%"+Bbsname+"%"+Boardname+"%"+Author+"%"+Alias+"%"+Ip;
                count ++;
                if ( count == 1)
                    recentDate = PostDate;     //第一条是最新的日期
                vec.add(tradeinfo);
            }
        }catch(Exception ex){
            ex.printStackTrace();
        }
        bridge.setConnectionSwitch("off");
        setQueryCache(tradetype,kind,commodity,keywords,vec,recentDate);
        return vec;
    }

/*
    private  Vector  getTradeInfo(String tradetype,String commodity){
        DBBridge bridge = new DBBridge();
        Vector vec = new Vector();
        String recentDate = null;
        Vector cachevec = checkQueryCache(tradetype,commodity);
        if (cachevec != null){
            return cachevec;
        }
        try{
            String sql = "select TRADE,COMMODITY,DESCRIPTION,CONTACT,JIAOYIXINXI.POSTDATE,JIAOYIXINXI.XMLFILE,BBSNAME,BOARDNAME,AUTHOR,ALIAS,TITLE,CONTENT,IP"+
                    " from JIAOYIXINXI,BBSXINXI WHERE (TRADE = "+
                    tradetype+") AND (COMMODITY = '"+commodity+"') and (JIAOYIXINXI.XMLFILE = BBSXINXI.XMLFILE) order by JIAOYIXINXI.POSTDATE desc";
            System.out.println(sql);
            ResultSet rs = bridge.getStmt().executeQuery(sql);
            int count = 0;
            while ((rs != null)&&(rs.next())){
                int Trade = rs.getInt("TRADE");
                String Commodity = comTool.getChineseStr(rs.getString("COMMODITY"));
                String Description = comTool.getChineseStr(rs.getString("DESCRIPTION"));
                String Contact = comTool.getChineseStr(rs.getString("CONTACT"));
                String PostDate = comTool.getChineseStr(rs.getString("POSTDATE"));
                PostDate = PostDate.substring(0,PostDate.length()-2);
                String XMLFile = rs.getString("XMLFILE");
                String Bbsname = comTool.getChineseStr(rs.getString("BBSNAME"));

⌨️ 快捷键说明

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