News.java
上传用户:sdtxjx
上传日期:2022-07-09
资源大小:2937k
文件大小:15k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. /***************************************************
  2.  *  
  3.  *  源文件名:  News.java
  4.  *  功    能: 梦想年华新闻系统 - 新闻管理类
  5.  * 作者:梦想年华 [DreamTime]
  6.  * Email:fanwsp@126.com
  7.  *  QQ:122142023 
  8.  *  CopyRight(c)2005-2006 by DreamTime 
  9.  *
  10.  ****************************************************
  11. */
  12. package dreamtime.dreamnews; //指定类所在的包
  13. import java.sql.*;
  14. import dreamtime.dreamnews.Function;
  15. import dreamtime.dreamnews.DBConnection;
  16. public class News
  17. {
  18.     DBConnection DBConn = new DBConnection();
  19.     Function Fun = new Function(); 
  20.     
  21.     public News()
  22.     {
  23.     
  24.     } 
  25.     
  26.     
  27.     /*********************************************************
  28. * 函数名:ReadNews
  29. * 作  用:读取类别信息
  30. * 参  数:s0:新闻ID
  31. * 返回值:字符串数组型。类别的各项信息
  32. ***********************************************************/
  33.     public String[] ReadNews(String s0)
  34.     {
  35.      try
  36.      {
  37.      Connection Conn = DBConn.getConn(); 
  38.     Statement stmt = Conn.createStatement(1004,1007);
  39.     ResultSet rs = null;
  40.     String sql = null;
  41.     int NewsID = Fun.StrToInt(s0);
  42.     String [] s = new String[16];
  43.      if (NewsID==0)
  44.      return null;
  45.      else
  46.      {
  47.      sql = "select * from News where NewsID=" + NewsID;
  48.     rs = stmt.executeQuery(sql);
  49.     rs.next();
  50.     for (int i=0;i<s.length;i++)
  51.     {
  52.     s[i] = rs.getString(i+2);
  53.     }
  54.   rs.close();
  55.     stmt.close();
  56.     Conn.close();
  57.     return s;
  58.  }
  59.  }catch(Exception e){
  60.   //e.printStackTrace();
  61.   return null;
  62.  }
  63. }
  64.     
  65.      
  66.     /*********************************************************
  67. * 函数名:ListNews
  68. * 作  用:添加新闻
  69. * 参  数:sPage,页面地址; strPage,第几页
  70. * 返回值:字符串型。返回操作结果的信息
  71. ***********************************************************/
  72.     public String ListNews(String sPage,String strPage)
  73.     {
  74. try
  75.      {
  76.      boolean OK = true;
  77.      Connection Conn = DBConn.getConn();
  78.      Statement stmt = Conn.createStatement(1004,1007);
  79.      ResultSet rs = null;
  80.      StringBuffer sb = new StringBuffer();
  81.      String [] s1 = null;
  82. int i;
  83. int intPage = 1; 
  84. int intPageSize = 15;
  85. if (Fun.ReadConfig() && Fun.AdminNewsListNum>0) intPageSize = Fun.AdminNewsListNum;
  86.      String sSql = "select * from News order by NewsID desc";
  87.      rs = stmt.executeQuery(sSql);
  88.     
  89.      //输出表单信息
  90.      sb.append("<br><br><table width="90%"  border="1" align="center" cellpadding="1" cellspacing="0">rn");
  91. sb.append("<tr background="images/bg.gif">rn");
  92. sb.append("<td height="27" colspan="4" background="images/bg.gif"><div align="center">");
  93. sb.append("<strong class="title">新闻列表</strong></div></td></tr>rn");
  94. sb.append("<tr class="chinese" height="25">rn");
  95. sb.append("<td width="8%" height="25"><div align="center" class="chinese"><strong>ID</strong></div></td>rn");
  96. sb.append("<td width="50%"><div align="center" class="chinese"><strong>新闻标题</strong></div></td>rn");
  97. sb.append("<td width="26%"><div align="center" class="chinese"><strong>发布时间</strong></div></td>rn");
  98. sb.append("<td width="16%"><div align="center" class="chinese"><strong>操作</strong></div></td>rn");
  99. sb.append("</tr>rn");
  100. sb.append("<tr>rn");
  101. sb.append("<td height="30" colspan="4" align="center">");
  102. sb.append("<form name="ListNews" style="margin:0 2px 0 0; height:25px;width:500px;font-size:12px">");
  103. sb.append("<div align="center"><font color="#ff6600"><strong>新闻管理快速通道</strong>&nbsp;&nbsp;");
  104. sb.append("请输入要操作新闻的ID:&nbsp;</font>");
  105. sb.append("<input id="NewsID" type="text" size="10" maxlength="8" class="chinese">&nbsp;");
  106. sb.append("<input name="Submit" type="button" class="button" value="修 改" onClick="fastNews(false);">&nbsp;");
  107. sb.append("<input name="Submit2" type="button" class="button" value="删 除" onClick="fastNews(true);">");
  108. sb.append("</form>");
  109. sb.append("</td></tr>rn");
  110.      //如果表中没有任何记录,刚给出提示信息
  111. if (!rs.next())
  112. sb.append("<tr height="25" bgcolor="#d6dff7"  class="info1"><td colspan="4">rn");
  113. sb.append("<div align="center"><b>暂时还没有新闻!</b></div></td></tr>rn");
  114. }
  115. else 
  116. {
  117. //取得待显示页码 
  118. intPage = Fun.StrToInt(strPage);
  119. sPage = Fun.CheckReplace(sPage);
  120. if (intPage==0) intPage=1;
  121. //将记录指针定位到待显示页的第一条记录上 
  122. rs.absolute((intPage-1) * intPageSize+1);
  123. i = 0; 
  124. while(i < intPageSize && !rs.isAfterLast())
  125. {
  126.     int NewsID = rs.getInt("NewsID");
  127. String NewsTitle = rs.getString("NewsTitle");
  128. String sTitle = NewsTitle;
  129. String sImg = "news.gif";
  130. String sImgTitle = "普通新闻";
  131. if (NewsTitle.length()>20) sTitle = NewsTitle.substring(0,20) + "..";
  132. if(rs.getString("IsImg").equals("Yes")) 
  133. {
  134. sImg = "ImgNews.gif";
  135. sImgTitle = "图片新闻";
  136. }
  137. else if(rs.getString("IsImg").equals("Yes")) 
  138. {
  139. sImg = "TopNews.gif";
  140. sImgTitle = "头条新闻";
  141. }
  142. sb.append("<tr bgcolor="#d6dff7" height="22">rn");
  143. sb.append("<td bgcolor="#d6dff7" height="22"><div align="center" class="chinese">" + NewsID + "</div></td>rn");
  144. sb.append("<td bgcolor="#d6dff7"><div class="news">&nbsp");
  145. sb.append("<img src="../pic/" + sImg + "" alt="" + sImgTitle + "">&nbsp;");
  146. sb.append("<a href="../ShowNews.jsp?NewsID=" + NewsID + ""  Title="" + NewsTitle + "">" + sTitle + "</div></td>rn");
  147. sb.append("<td bgcolor="#d6dff7"><div align="center" class="chinese">" + rs.getString("NewsTime") + "</div></td>rn");
  148. sb.append("<td bgcolor="#d6dff7"><div align="center"  class="chinese">");
  149. sb.append("<a href="ModifyNews.jsp?NewsID=" + NewsID + "">[修改]</a>");
  150. sb.append("<a href="DelNews.jsp?NewsID=" + NewsID + "">[删除]</a> </div></td>rn");
  151. sb.append("</tr>rn");
  152. rs.next(); 
  153. i++;
  154. }
  155. sb.append("</table>rn");
  156. sb.append(Fun.Page(sPage,rs,intPage,intPageSize));
  157. }
  158. rs.close();
  159.      stmt.close();
  160.      Conn.close();
  161.      return sb.toString();
  162.      }catch(Exception e)
  163.         {
  164.             //e.printStackTrace();
  165.             //System.out.print(e.getMessage());
  166.             return "No";
  167.         }
  168.     }
  169.     
  170.     
  171.     
  172.     /*********************************************************
  173. * 函数名:AddNews
  174. * 作  用:添加新闻
  175. * 参  数:s:字符串数组,添加新闻的各项参数
  176. *        s1:管理员;s2:IP地址
  177. * 返回值:字符串型。返回操作结果的信息
  178. ***********************************************************/
  179.     public String AddNews(String [] s,String s1,String s2)
  180.     {
  181. try
  182.      {
  183.      boolean OK = true;
  184.      Connection Conn = DBConn.getConn();
  185.      Statement stmt = Conn.createStatement(1004,1007);
  186.      ResultSet rs = null;
  187.      String sError = "";
  188.      for(int i=0;i<s.length;i++)
  189.      {
  190.      if(i!=1) s[i] = Fun.getStrCN(Fun.CheckReplace(s[i]));
  191.      else s[i] = Fun.getStrCN(s[i]);
  192.      }
  193.      String [] sa1 = new String [4];
  194.      String [] sa2 = new String [4];
  195.      sa1[0] = s[0];
  196.      sa1[1] = s[3];
  197.      sa1[2] = s[4];
  198.      sa1[3] = s[1];
  199.      sa2[0] = "新闻标题";
  200.      sa2[1] = "新闻发布人";
  201.      sa2[2] = "新闻出处";
  202.      sa2[3] = "新闻内容";
  203.      String sOK = Fun.CheckDate(sa1,sa2);
  204.      if (!sOK.equals("Yes"))
  205.      {
  206.      OK = false;
  207.      sError = sOK; 
  208.      }
  209.     
  210.      if(!s[13].equals(""))
  211.      {
  212.      s[7]="0";
  213.      s[8]="0";
  214.      }
  215.      else
  216.      {
  217.      if(s[7].equals("") || s[8].equals(""))
  218.      {
  219.      OK = false;
  220.      sError="新闻类别和专题不能同时为空";
  221.      }
  222.      }
  223.     
  224.      if(s[14].length()>120) s[14]=s[14].substring(0,120);
  225.      if (s[2].equals("") || s[2].equals(""))
  226.      {
  227.      s[2] = s[0];
  228.      }
  229.      if(OK)
  230.      {
  231.      String NowTime = (new java.util.Date()).toLocaleString();
  232.      String [] sLog = new String[5];
  233.      String sql = "insert into News (NewsTitle,NewsContent,NewsKey,NewsAuthor,";
  234.      sql += "NewsFrom,NewsTime,NewsPicture,BigClassID,SmallClassID,";
  235. sql += "IsHead,HeadPicture,IsImg,IsHot,SpecialID,NewsInfo,AdminName) values (";
  236. sql += "'" + s[0] + "',";
  237. sql += "'" + s[1] + "',";
  238. sql += "'" + s[2] + "',";
  239. sql += "'" + s[3] + "',";
  240. sql += "'" + s[4] + "',";
  241. sql += "'" + s[5] + "',";
  242. sql += "'" + s[6] + "',";
  243. sql += Fun.StrToInt(s[7]) + ",";
  244. sql += Fun.StrToInt(s[8]) + ",";
  245. sql += "'" + s[9] + "',";
  246. sql += "'" + s[10] + "',";
  247. sql += "'" + s[11] + "',";
  248. sql += "'" + s[12] + "',";
  249. sql += Fun.StrToInt(s[13]) + ",";
  250. sql += "'" + s[14] + "',";
  251. sql += "'" + s1    + "')";
  252. //out.println(sql);
  253. String sql1= "update Admin set NewsNum=NewsNum+1 where AdminName='" + Fun.CheckReplace(s1) + "'";
  254. try{
  255. Conn.setAutoCommit(false);
  256. stmt.executeUpdate(sql);
  257. stmt.executeUpdate(sql1);
  258. Conn.commit();
  259. Conn.setAutoCommit(true);
  260. stmt.close();
  261. Conn.close();
  262.      sLog[0] = s1;
  263.      sLog[1] = "添加新闻[" + s[0] + "]";
  264.      sLog[2] = NowTime;
  265.      sLog[3] = s2; 
  266.      sLog[4] = "Yes";
  267.      Fun.AddLog(sLog);
  268. stmt.close();
  269. Conn.close();
  270.      return "Yes";
  271.     }catch (Exception e) {
  272. Conn.rollback(); //回滚JDBC事务
  273. e.printStackTrace();
  274. Conn.close();
  275. return "事务操作失败!";
  276. }  
  277.     }
  278.     else return sError;
  279.     }catch(Exception e)
  280.         {
  281.             e.printStackTrace();
  282.             //System.out.print(e.getMessage());
  283.             return "添加新闻操作失败!";
  284.         }
  285.      }
  286.     
  287.     
  288.     
  289.     /*********************************************************
  290. * 函数名:EditNews
  291. * 作  用:修改新闻
  292. * 参  数:字符串数组,添加新闻的各项参数
  293. *         s0:新闻ID,s1:管理员;s2:IP地址
  294. * 返回值:字符串型。返回操作结果的信息
  295. ***********************************************************/
  296.     public String EditNews(String [] s,String s0,String s1,String s2)
  297.     {
  298. try
  299.      {
  300.      boolean OK = true;
  301.      Connection Conn = DBConn.getConn();
  302.      Statement stmt = Conn.createStatement(1004,1007);
  303.      ResultSet rs = null;
  304.      String sError = "";
  305.      for(int i=0;i<s.length;i++)
  306.      {
  307.      s[i] = Fun.getStrCN(Fun.CheckReplace(s[i]));
  308.      }
  309.      String [] sa1 = new String [4];
  310.      String [] sa2 = new String [4];
  311.      sa1[0] = s[0];
  312.      sa1[1] = s[3];
  313.      sa1[2] = s[4];
  314.      sa1[3] = s[1];
  315.      sa2[0] = "新闻标题";
  316.      sa2[1] = "新闻发布人";
  317.      sa2[2] = "新闻出处";
  318.      sa2[3] = "新闻内容";
  319.      int NewsID = Fun.StrToInt(s0);
  320.      if (NewsID==0)
  321.      {
  322.      OK = false;
  323.      sError = "新闻ID参数传递错误,请重试!"; 
  324.      }
  325.     
  326.      if(!s[13].equals(""))
  327.      {
  328.      s[7]="0";
  329.      s[8]="0";
  330.      }
  331.      else
  332.      {
  333.      if(s[7].equals("") || s[8].equals(""))
  334.      {
  335.      OK = false;
  336.      sError="新闻类别和专题不能同时为空";
  337.      }
  338.      }
  339.     
  340.      String sOK = Fun.CheckDate(sa1,sa2);
  341.      if (!sOK.equals("Yes"))
  342.      {
  343.      OK = false;
  344.      sError = sOK; 
  345.      }
  346.      if(s[14].length()>120) s[14]=s[14].substring(0,120);
  347.      if (s[2].equals("") || s[2].equals(" "))
  348.      {
  349.      s[2] = s[0];
  350.      }
  351.      if(OK)
  352.      {
  353.      String NowTime = (new java.util.Date()).toLocaleString();
  354.      String [] sLog = new String[5];
  355.      String sql = "update News set ";
  356.      sql += "NewsTitle='"   + s[0] + "',";
  357.      sql += "NewsContent='" + s[1] + "',";
  358.      sql += "NewsKey='"     + s[2] + "',";
  359.      sql += "NewsAuthor='"  + s[3] + "',";
  360.      sql += "NewsFrom='"    + s[4] + "',";
  361.      sql += "NewsTime='"    + s[5] + "',";
  362.      sql += "NewsPicture='" + s[6] + "',";
  363.      sql += "BigClassID="   + Fun.StrToInt(s[7]) + ",";
  364.      sql += "SmallClassID=" + Fun.StrToInt(s[8]) + ",";
  365.      sql += "IsHead='"      + s[9] + "',";
  366.      sql += "HeadPicture='" + s[10]+ "',";
  367.      sql += "IsImg='"       + s[11]+ "',";
  368.      sql += "IsHot='"   + s[12]+ "',";
  369.      sql += "SpecialID="   + Fun.StrToInt(s[13]) + ",";
  370.      sql += "NewsInfo='"   + s[14]+ "'";
  371.      sql += " where NewsID="+ NewsID;
  372. stmt.executeUpdate(sql);
  373. stmt.close();
  374. Conn.close();
  375.      sLog[0] = s1;
  376.      sLog[1] = "修改ID为[" + NewsID + "]的新闻";
  377.      sLog[2] = NowTime;
  378.      sLog[3] = s2; 
  379.      sLog[4] = "Yes";
  380.      Fun.AddLog(sLog);
  381. stmt.close();
  382. Conn.close();
  383.      return "Yes";
  384.     }
  385.     else return sError;
  386.     }catch(Exception e)
  387.         {
  388.             e.printStackTrace();
  389.             System.out.print(e.getMessage());
  390.             return "修改新闻操作失败!";
  391.         }
  392.      }
  393.     
  394.     
  395.     /*********************************************************
  396. * 函数名:DelNews
  397. * 作  用:删除新闻
  398. * 参  数:s0:新闻ID;s1:管理员;s2:IP
  399. * 返回值:成功 true ,否则返回 false
  400. ***********************************************************/ 
  401. public boolean DelNews(String s0,String s1,String s2)
  402.     {
  403.      String NowTime = (new java.util.Date()).toLocaleString();
  404. String [] sLog = new String[5];
  405. sLog[0] = s1;
  406. sLog[2] = NowTime;
  407. sLog[3] = s2; 
  408.      try{
  409.      Connection Conn = DBConn.getConn();
  410.      Statement stmt = Conn.createStatement();
  411.      int NewsID = Fun.StrToInt(s0);
  412.      if (NewsID==0)
  413.      return false;
  414.      else
  415.      {
  416.   try{
  417.      String sql = "delete from News where NewsID=" + NewsID;
  418.      String sql1= "update Admin set NewsNum=NewsNum-1 where AdminName='" + Fun.CheckReplace(s1) + "'";
  419.      Conn.setAutoCommit(false);
  420.      stmt.executeUpdate(sql);
  421.      stmt.executeUpdate(sql1);
  422.      Conn.commit();
  423.      Conn.setAutoCommit(true);
  424.      sLog[1] = "删除ID为[" + s0 + "]的新闻";
  425.      sLog[4] = "Yes";
  426.      Fun.AddLog(sLog);
  427. stmt.close();
  428. Conn.close();
  429.      return true;
  430.      }catch (Exception e) {
  431. Conn.rollback(); //回滚JDBC事务
  432. ////e.printStackTrace();
  433. Conn.close();
  434. return false;
  435. }  
  436.     }
  437.      }catch(Exception e){
  438.      //e.printStackTrace();
  439.      System.out.print(e.getMessage());
  440.      //System.out.print(sql);
  441.      sLog[1] = "删除新闻[" + s0 + "]出错";
  442.      sLog[4] = "No";
  443.      Fun.AddLog(sLog);
  444.      return false;
  445.      }
  446. }
  447.     
  448.     
  449.     
  450.     
  451.     //测试
  452. public static void main(String[] args)
  453. {
  454. News n1 = new News();
  455. String [] as = n1.ReadNews("1");
  456. //System.out.println(n1.ListNews("ListNews.jsp","1"));
  457. for(int i=0;i<as.length;i++)
  458. {
  459. System.out.println(as[i]);
  460. }
  461. }
  462. }
  463.