?? shownews.java
字號:
/***************************************************
*
* 源文件名: ShowNews.java
* 功 能: 夢想年華新聞系統 - 前臺新聞顯示類
* 作者:夢想年華 [DreamTime]
* Email:fanwsp@126.com
* QQ:122142023
* CopyRight(c)2005-2006 by DreamTime
*
****************************************************
*/
package dreamtime.dreamnews; //指定類所在的包
import java.sql.*;
import java.util.Date;
import dreamtime.dreamnews.Function;
import dreamtime.dreamnews.DBConnection;
public class ShowNews
{
DBConnection DBConn = new DBConnection();
Function Fun = new Function();
String DreamNewsTitle;
String DreamNewsCopyRight;
public ShowNews()
{
if(Fun.ReadConfig())
{
DreamNewsTitle = Fun.DreamNewsTitle;
DreamNewsCopyRight = Fun.DreamNewsCopyRight;
}
if(DreamNewsTitle==null || DreamNewsTitle.equals(""))
DreamNewsTitle="夢想年華新聞系統";
if(DreamNewsCopyRight==null || DreamNewsCopyRight.equals(""))
DreamNewsCopyRight="夢想年華[DreamTime]";
}
/*********************************************************
* 函數名:ShowNews
* 作 用:前臺顯示新聞
* 參 數:新聞ID
* 返回值:字符串
***********************************************************/
public String ShowNews(String s0)
{
try
{
Connection Conn = DBConn.getConn();
Statement stmt = Conn.createStatement(1004,1007);
ResultSet rs = null;
String sql = "";
boolean OK = true;
boolean IsSpec = false;
String sError = "";
StringBuffer sb = new StringBuffer();
int NewsID = Fun.StrToInt(s0);
sb.append("<div id=\"ShowNews\">\r\n");
if(NewsID==0)
{
OK = false;
sError = "<div id=\"Content\"><p>非法參數傳遞!</p></div>";
}
if(OK)
{
sql = "select * from News,BigClass,SmallClass where ";
sql += "BigClass.BigClassID=News.BigClassID and ";
sql += "SmallClass.SmallClassID=News.SmallClassID and ";
sql += "NewsID=" + NewsID;
String sql1 = "select * from News,Special where ";
sql1 += "Special.SpecialID=News.SpecialID and ";
sql1 += "NewsID=" + NewsID;
rs = stmt.executeQuery(sql);
if(!rs.next())
{
sError = "<div id=\"Content\"><p>參數傳遞錯誤!</p></div>";
IsSpec = true;
}
if(IsSpec)
{
rs=stmt.executeQuery(sql1);
if(!rs.next())
{
OK = false;
sError = "<div id=\"Content\"><p>參數傳遞錯誤!</p></div>";
}
else OK = true;
}
if(OK)
{
rs.first();
String NewsTitle = rs.getString("NewsTitle");
String NewsContent = rs.getString("NewsContent");
String NewsFrom = rs.getString("NewsFrom");
String NewsAuthor = rs.getString("NewsAuthor");
String NewsTime = rs.getString("NewsTime");
String pos = "<img src=\"pic/pos.gif\" border=0>";
DreamNewsTitle += " 首頁";
sb.append("<div id=\"Pos\"><a title=\"" + DreamNewsTitle + "\" href=\"index.jsp\">首頁</a>");
if(IsSpec)
{
sb.append(pos + "<a title=\"專題新聞\" href=\"Special.jsp\">專題新聞</a>");
sb.append(pos + "<a title=\"" + rs.getString("SpecialInfo") + "\" href=\"Special.jsp?SpecialID=");
sb.append(rs.getInt("SpecialID") + "\">" + rs.getString("SpecialName") + "</a>");
}
else
{
sb.append(pos + "<a title=\"" + rs.getString("BigClassInfo") + "\" href=\"ReadClass.jsp?BigClassID=");
sb.append(rs.getInt("BigClassID") + "\">" + rs.getString("BigClassName") + "</a>" );
sb.append(pos + "<a title=\"" + rs.getString("SmallClassInfo") + "\" href=\"ReadSClass.jsp?SClassID=");
sb.append(rs.getInt("SmallClassID") + "\">" + rs.getString("SmallClassName") + "</a>");
}
sb.append(pos + NewsTitle);
sb.append("</div>\r\n");
sb.append("<div id=\"Content\">\r\n");
sb.append("<div id=\"Title\">" + NewsTitle + "</div>\r\n");
sb.append("<div id=\"info\">");
sb.append("發布時間:" + NewsTime + " ");
sb.append("新聞來源:" + NewsFrom + " ");
sb.append("發布人:" + NewsAuthor + " ");
sb.append("</div>\r\n");
sb.append("<div id=\"NewsContent\">" + NewsContent + "</div>\r\n");
sb.append("</div>\r\n");
}
rs.close();
stmt.close();
Conn.close();
}
sb.append("</div>\r\n");
if(OK) return sb.toString();
else return sError;
}catch(Exception e)
{
//e.printStackTrace();
System.out.print(e.getMessage());
return " ";
}
}
/*********************************************************
* 函數名:SearchNews
* 作 用:實現新聞搜索功能
* 參 數:新聞關鍵字,頁面地址,分頁顯示的頁碼
* 返回值:字符串
***********************************************************/
public String SearchNews(String [] s,String sPage,String strPage)
{
String sql = "";
try
{
Connection Conn = DBConn.getConn();
Statement stmt = Conn.createStatement(1004,1007);
ResultSet rs = null;
//String sql = "";
String sClassTitle="沒有這個類別";
StringBuffer sb = new StringBuffer();
int i;
int intPage = 1;
int intPageSize = 50;
boolean OK = true;
int KeyType = Fun.StrToInt(Fun.CheckReplace(s[0]));
int NewsType = Fun.StrToInt(Fun.CheckReplace(s[1]));
String sKey = Fun.getStrCN(Fun.CheckReplace(s[2]));
sb.append("<div id=\"News\"><ul>\r\n");
/************** 取得新聞顯示參數 **************/
if (Fun.ReadConfig() && Fun.SearchNewsNum>0) intPageSize = Fun.SearchNewsNum;
if(sKey.equals("") || sKey==null)
{
OK = false;
sb.append("<li><div id=\"F3\">搜索關鍵字不能為空!</div></li>\r\n");
}
if(OK)
{
/*構造搜索的SQL語句*/
sql = "select * from News where ";
switch(KeyType)
{
case 1: //按標題搜索
sql += "NewsTitle like '%" + sKey + "%'";
break;
case 2: //按內容搜索
sql += "NewsContent like '%" + sKey + "%'";
break;
case 3: //按新聞關鍵字搜索
sql += "NewsKey like '%" + sKey + "%'";
break;
case 4: //按新聞發布時間搜索
sql += "NewsTime like '%" + sKey + "%'";
break;
default: //所有
sql += "NewsTitle like '%" + sKey + "%'";
sql += " or NewsContent like '%" + sKey + "%'";
sql += " or NewsKey like '%" + sKey + "%'";
break;
}
switch(NewsType)
{
case 1: //頭條
sql += " and IsHead='Yes'";
break;
case 2: //圖片
sql += " and IsImg='Yes'";
break;
case 3: //普通
sql += " and IsHead='No' and IsImg='No'";
break;
default: //所有
break;
}
/*讀取新聞,并分頁顯示*/
rs = stmt.executeQuery(sql);
//如果表中沒有任何記錄,則給出提示信息
if (!rs.next())
{
sb.append("<li><div id=\"F3\">沒有新聞</div></li>\r\n");
OK = false;
}
else
{
//取得待顯示頁碼
intPage = Fun.StrToInt(strPage);
sPage = Fun.CheckReplace(sPage);
if (intPage==0) intPage=1;
//將記錄指針定位到待顯示頁的第一條記錄上
if(!rs.absolute((intPage-1) * intPageSize+1)) rs.absolute(1);
i = 1;
while(i<=intPageSize && !rs.isAfterLast())
{
String NewsTitle = rs.getString(2);
String sTitle = NewsTitle;
String NewsTime = rs.getString(7);
if (NewsTitle.length()>25) sTitle = NewsTitle.substring(0,25) + "..";
if(rs.getString(13).equals("Yes")) sTitle += "(圖)";
sb.append("<li><img src=\"pic/li.gif\"> <a title=\"" + NewsTitle + "\" href=\"ShowNews.jsp?NewsID=" + rs.getInt(1) + "\" target=_blank>");
sb.append(sTitle + "</a><span>[" + NewsTime + "]</span></li>\r\n");
if(i%5==0 && i>1) sb.append("<div id=\"Line\"><div id=\"L2\"></div></div>\r\n");
rs.next();
i++;
}
}
sb.append("</ul></div>\r\n");
if(OK) sb.append(Fun.Page(sPage,rs,intPage,intPageSize));
rs.close();
stmt.close();
Conn.close();
}
return sb.toString();
}catch(Exception e)
{
//e.printStackTrace();
//System.out.print(e.getMessage());
System.out.print(sql);
return " ";
}
}
/*********************************************************
* 函數名:IDToTitle
* 作 用:將ID轉化為標題
* 參 數:ID,ID類別,1為大類,2為小類,3為新聞
* 返回值:字符串
***********************************************************/
public String IDToTitle(String s0,int i)
{
try
{
Connection Conn = DBConn.getConn();
Statement stmt = Conn.createStatement(1004,1007);
ResultSet rs = null;
String sql = "";
boolean OK = true;
int ID = Fun.StrToInt(Fun.CheckReplace(s0));
String Title = "";
if(ID==0)
{
Title = DreamNewsTitle;
OK = false;
}
else
{
switch(i)
{
case 0: //網站標題
Title = DreamNewsTitle;
OK = false;
break;
case 1: //大類
sql = "select BigClassName from BigClass where BigClassID=" + ID;
break;
case 2: //小類
sql = "select SmallClassName from SmallClass where SmallClassID=" + ID;
break;
case 3: //新聞
sql = "select NewsTitle from News where NewsID=" + ID;
break;
case 4: //專題
sql = "select SpecialName from Special where SpecialID=" + ID;
break;
case 5: //專題列表
Title = "專題列表";
OK = false;
break;
default: //出錯
Title = DreamNewsTitle;
OK = false;
break;
}
}
if(OK)
{
rs = stmt.executeQuery(sql);
if(rs.next())
{
Title = rs.getString(1);
rs.close();
stmt.close();
Conn.close();
}
}
return Title;
}catch(Exception e)
{
////e.printStackTrace();
//System.out.print(e.getMessage());
return DreamNewsTitle;
}
}
//測試
public static void main(String[] args)
{
ShowNews sNews = new ShowNews();
System.out.println(sNews.ShowNews("1"));
String [] s1 = new String[3];
//s1[0] = "0";
//s1[1] = "0";
//s1[2] = "廣州";
//System.out.println(sNews.SearchNews(s1,"Search.jsp?","1"));
//System.out.println(LC.ShowHeadPic("1"));
//System.out.println(sNews.IDToTitle("1",5));
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -