新闻页面的数据维护主要包括:添加新闻、修改新闻、删除新闻、查询新闻
此图为新闻系统的管理页面
第一个是新闻的添加:主要代码为
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//设置编码格式
request.setCharacterEncoding("utf-8");
//接收添加页面到的数据,获取新闻主题编号
int tid = Integer.valueOf(request.getParameter("ntid"));
//获取新闻标题
String ntitle = request.getParameter("ntitle");
//获取新闻作者
String nzz = request.getParameter("nauthor");
//获取新闻摘要
String nzy = request.getParameter("nsummary");
//获取新闻内容
String ncontent = request.getParameter("ncontent");
//注册驱动类
Class.forName("oracle.jdbc.driver.OracleDriver");
//连接数据库
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection con = DriverManager.getConnection(url, "scott", "tiger");
//获取新闻分类的下一个编号
int nextNid = 1;
PreparedStatement ps = con.prepareStatement("select max(nid) from news");
ResultSet rs = ps.executeQuery();
if(rs.next()){
nextNid=rs.getInt(1)+1;
}
//添加新闻
ps = con.prepareStatement("insert into news values(?,?,?,?,?,sysdate,0,?)");
//给占位符赋值
ps.setInt(1, nextNid);
ps.setInt(2, tid);
ps.setString(3, ntitle);
ps.setString(4, nzz);
ps.setString(5, nzy);
ps.setString(6, ncontent);
//执行sql语句
int i = ps.executeUpdate();
if(i>0){
//成功回到新闻系统页面
out.print("<script>alert('添加成功!');location.href='../admin.jsp'</script>");
}else{
//失败回到添加新闻页面
out.print("<script>alert('添加失败!');location.href='add_news.jsp'</script>");
}
%>
添加新闻效果图如下:
第二个是新闻的删除:首先给新闻系统绑定数据,连接ORCL数据库。注意:要导包!
<%
//接收要删除的新闻编号
int nid = Integer.valueOf(request.getParameter("nid"));
//注册驱动类
Class.forName("oracle.jdbc.driver.OracleDriver");
//连接数据库
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection con = DriverManager.getConnection(url, "scott", "tiger");
//创建对象
PreparedStatement ps = con.prepareStatement("delete news where nid="+nid);
//执行sql语句
int i = ps.executeUpdate();
if(i>0){//成功删除回到主页面,并且刷新数据
out.print("<script>alert('删除成功!');location.href='admin.jsp'</script>");
}else{
out.print("<script>alert('删除失败!');location.href='admin.jsp'</script>");
}
%>
修改、详情,明日更新!敬请期待!
第三个是修改新闻页面:首先获取到修改页面的值。
修改页面的跳转流程:admin.jsp(主页面)===》update_news.jsp==》doupdate.jsp
重点代码展示:1、主页面中的部分代码:
<a href='newspages/update_news.jsp?nid=<%=rs.getInt(1)%>'>修改</a>
2、update_news.jsp页面的代码:重点是利用隐藏标签来换取新闻编号nid
//利用隐藏标签传值,无视觉效果,但可传值。有value属性值,可以绑定值
<input name="nid" type="hidden" value="<%=nid%>">
<h1 id="opt_type">修改新闻:</h1>
<%
//接收要修改的编号,把字符串转换为整数编号
int nid = Integer.valueOf(request.getParameter("nid"));
//注册驱动类
Class.forName("oracle.jdbc.driver.OracleDriver");
//连接数据库
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection con = DriverManager.getConnection(url, "scott", "tiger");
//创建PreparedStatement对象
PreparedStatement ps = con.prepareStatement("select * from news where nid="+nid);
//执行sql语句
ResultSet rs = ps.executeQuery();
//声明变量,定义属性
int tid = 0;
String ntitle = "";
String nzz = "";
String nzy = "";
String ncontent = "";
if (rs.next()) {
tid = rs.getInt("tid");
ntitle = rs.getString("ntitle");
nzz = rs.getString("nzz");
nzy = rs.getString("nzy");
ncontent = rs.getString("ncontent");
}
%>
<form action="doupdate_news.jsp" method="post">
<p>
<label> 主题 </label>
<select name="ntid">
<%
//查询主题内容
ps = con.prepareStatement("select * from subject");
rs = ps.executeQuery();
while (rs.next()) {
%>
<option value="<%=rs.getInt(1)%>"
<%
//判断新闻主题,设置被选中
if (rs.getInt(1) == tid) {
out.print("selected='selected'");
}
%>
><%=rs.getString(2) %> </option>
<%} %>
</select>
</p>
<p>
<label> 标题 </label>
<input name="ntitle" type="text" value="<%=ntitle %>" class="opt_input" />
</p>
<p>
<label> 作者 </label>
<input name="nauthor" type="text" value="<%=nzz %>" class="opt_input" />
</p>
<p>
<label> 摘要 </label>
<textarea name="nsummary" cols="40" rows="3">
<%=nzy %>
</textarea>
</p>
<p>
<label> 内容 </label>
<textarea name="ncontent" cols="70" rows="10">
<%=ncontent %>
</textarea>
</p>
<p>
<label> 上传图片 </label> <input name="file" type="file"
class="opt_input" />
</p>
<input name="nid" type="hidden" value="<%=nid%>">
<input type="submit" value="提交修改" class="opt_sub" />
<input type="reset" value="重置" class="opt_sub" />
//利用隐藏标签传值,无视觉效果,但可以传值。有value属性值,可以绑定值
</form>
第四个是根据标题查找新闻:主要是获取标题关键字str,模糊查询仍回到主页面admin
//若输入值为空,则关键字为空,查询到所有新闻;若不为空,则根据关键字进行查询
<form action="admin.jsp" align="center">
<input type="text" name="str">
<input type="submit" value="查询">
</form>
<ul class="classlist">
<%
//获取模糊查询的关键字
String str = request.getParameter("str");
if(str==null){//若str为空,则关键字为空,查询到所有新闻;若不为空,则根据关键字进行查询
str = "";
}
String sql = "select * from news where ntitle like '%"+str+"%' order by nid desc";
//注册驱动类
Class.forName("oracle.jdbc.driver.OracleDriver");
//连接数据库
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection con = DriverManager.getConnection(url, "scott", "tiger");
//创建PreparedStatement对象
PreparedStatement ps = con.prepareStatement(sql);
//执行sql语句
ResultSet rs = ps.executeQuery();
while(rs.next()){
%>
<li>
<a href="newspages/read_news.jsp?nid=<%=rs.getInt(1)%>">
<%=rs.getString("ntitle") %>
</a>
<span> 作者:<%=rs.getString("nzz") %>
     <a href='newspages/update_news.jsp?nid=<%=rs.getInt(1)%>'>修改</a>
    <a href='dodelnews.jsp?nid=<%=rs.getInt(1)%>' onclick='return clickdel()'>删除</a> </span> </li>
<li class='space'></li>
<%} %>
第五个阅读新闻:重点代码为:
<h1>
<%
//接收新闻编号
int nid = Integer.valueOf(request.getParameter("nid"));
//注册驱动类
Class.forName("oracle.jdbc.driver.OracleDriver");
//连接数据库
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection con = DriverManager.getConnection(url, "scott", "tiger");
//创建PreparedStatement对象
PreparedStatement ps = con.prepareStatement("select * from news where nid="+nid);
//执行sql语句
ResultSet rs = ps.executeQuery();
//声明变量,定义属性
String ntitle = "";
String nzz = "";
String ndate = "";
String ncontent = "";
if(rs.next()){
ntitle = rs.getString("ntitle");
nzz = rs.getString("nzz");
ndate = rs.getDate("ndate")+"";//直接转
ncontent = rs.getString("ncontent");
}
%>
<img src="../images/title_1.gif" alt="国内新闻" />
</h1>
=======================================================================
<ul class="classlist">
<table width="80%" align="center">
<tr width="100%">
<td colspan="2" align="center"><%=ntitle %></td>
</tr>
<tr>
<td colspan="2"><hr /></td>
</tr>
<tr>
<td align="center"></td>
<td align="left"><%=nzz %></td>
</tr>
<tr>
<td colspan="2" align="center"><%=ndate %></td>
</tr>
<tr>
<td colspan="2"><%=ncontent %></td>
</tr>
<tr>
<td colspan="2"><hr /></td>
</tr>
</table>
</ul>