📄 tradeinfo.java
字号:
/**
* 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 + -