新闻页面的数据维护

新闻页面的数据维护主要包括:添加新闻、修改新闻、删除新闻、查询新闻

此图为新闻系统的管理页面

第一个是新闻的添加:主要代码为

<%@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") %>                                           
       &#160;&#160;&#160;&#160; <a href='newspages/update_news.jsp?nid=<%=rs.getInt(1)%>'>修改</a>
     
       &#160;&#160;&#160;&#160;<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>

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值