目录
一.主页面新闻展示
<!-- 需求:完成后台主页面的新闻显示绑定 start -->
<%
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//建立连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");
//sql语句
String sql = "select * from tb_news";
//将sql语句传入方法返回执行对象
PreparedStatement ps = conn.prepareStatement(sql);
//根据执行对象调用方法返回结果集对象
ResultSet rs = ps.executeQuery();
//遍历结果集
while(rs.next()){
out.println("<li> <a href='admin_newsDetail.jsp?nid="+rs.getInt(1)+"'>"+rs.getString(3)+"</a> <span> 作者:"+rs.getString(4)+"      <a href='admin_editNews.jsp?nid="+rs.getInt(1)+"'>修改</a>      <a href='javascript:void(0)' onclick='clickdel(\""+rs.getInt(1)+"\")'>删除</a></span> </li>");
}
%>
二.删除
<%
//该页面的作用:获取admin.jsp点击删除时的新闻编号获取 然后数据库交互 将其编号的新闻进行删除
//1. 设置相关的编码格式
request.setCharacterEncoding("utf-8");
//2.获取location.href传递过来的参数编号(新闻编号)
String id = request.getParameter("nid");
//新闻编号 数据库 number 需要转换
int nid = 0;
if(null!=id){
nid = Integer.valueOf(id);
}
//3.数据库交互 根据新闻编号 进行删除新闻
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//建立连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");
//sql语句
String sql = "delete from tb_news where nid = ?";
//将sql语句传入方法返回执行对象
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, nid);
//返回所影响的行数
int n = ps.executeUpdate();
//4.判断:删除成功----admin.jsp 删除不成功----admin.jsp
if(n>0){
out.println("<script>alert('删除成功');location.href='admin.jsp'</script>");
}else{
out.println("<script>alert('删除失败');location.href='admin.jsp'</script>");
}
%>
三.查看
<div class="content">
<!-- 该区域实现新闻详情显示 start -->
<%
//定义所谓变量(新闻标题,发布时间,点击量,新闻内容等等)
String ntitle = "";//标题
String ndate = "";//发布时间
String nauthor = "";//作者
String ncontent = "";//内容
int ncount = 0;//点击量
//1.设置编码
request.setCharacterEncoding("utf-8");
//2.获取id
String id = request.getParameter("nid");
//转换
int nid = 0;
if(null!=id){
nid = Integer.valueOf(id);
}
//3.获取数据
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//建立连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");
//sql语句
String sql = "select * from tb_news where nid = ?";
//将sql语句传入方法返回执行对象
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, nid);
//返回结果集对象
ResultSet rs = ps.executeQuery();
//if改造
if(rs.next()){
ntitle = rs.getString(3);
ndate = rs.getString(8);
nauthor = rs.getString(4);
ncontent = rs.getString(6);
ncount = rs.getInt(9);
}
%>
<ul class="classlist">
<table width="80%" align="center">
<tr width="100%">
<td colspan="2" align="center"><%=ntitle %>
点击量 <%=ncount %></td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td align="center"><%=ndate %></td>
<td align="left"><%=nauthor %> </td>
</tr>
<tr>
<td colspan="2" align="center"></td>
</tr>
<tr>
<td colspan="2"> <%=ncontent %> </td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
</table>
</ul>
<ul class="classlist">
<table width="80%" align="center">
<td colspan="6"> 暂无评论! </td>
<tr>
<td colspan="6">
<hr />
</td>
</tr>
</table>
</ul>
<!-- 该区域实现新闻详情显示 stop-->
</div>
四.修改
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//设置编码
request.setCharacterEncoding("utf-8");
//获取参数
//新闻编号(通过input的hidden隐藏域传递过来)
String id = request.getParameter("nid");
int nid = 0;
if (null != id) {
nid = Integer.valueOf(id);
}
//新闻分类编号
String tid = request.getParameter("ntid");
int ntid = 0;
if (null != tid) {
ntid = Integer.valueOf(tid);
}
//标题
String ntitle = request.getParameter("ntitle");
//作者
String nauthor = request.getParameter("nauthor");
//摘要
String nsummary = request.getParameter("nsummary");
//内容
String ncontent = request.getParameter("ncontent");
//图片不处理
//获取当前的系统(java 转换--oracle to_date oracle sysdate)
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String ndate = sdf.format(date);
//点击量不处理
//数据库交互
Class.forName("oracle.jdbc.driver.OracleDriver");
//建立连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "123");
//sql语句
String sql = "update tb_news set ntid = ? , ntitle = ? , nauthor = ? , nsummary = ? , ncontent = ? , ndate = to_date(?,'yyyy-mm-dd hh24:mi:ss') where nid = ?";
//将sql语句传入方法返回执行对象
PreparedStatement ps = conn.prepareStatement(sql);
//给占位符赋值
ps.setInt(1, ntid);
ps.setString(2,ntitle);
ps.setString(3,nauthor);
ps.setString(4,nsummary);
ps.setString(5,ncontent);
ps.setString(6,ndate);
ps.setInt(7,nid);
//返回影响的行数
int n = ps.executeUpdate();
if(n>0){
out.println("<script>alert('修改成功');location.href='admin.jsp'</script>");
}else{
out.println("<script>alert('修改失败');location.href='admin_editNews.jsp?nid="+nid+"'</script>");
}
%>
五. 新闻分类的数据绑定
1.第一种方式
```jsp
<p>
<label> 主题 </label>
<select name="ntid">
<!-- 新闻分类的数据绑定 start -->
<%
//需求:1.完成新闻分类的数据绑定
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//建立连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");
//sql语句
String sql = "select * from tb_news_theme";
//传入方法返回执行对象
PreparedStatement ps = conn.prepareStatement(sql);
//调用方法返回结果集对象
ResultSet rs = ps.executeQuery();
//遍历结果集
while(rs.next()){
//out.println(rs.getInt(1)+" "+rs.getString(2));
%>
out.println("<option value='<%=rs.getInt(1)%>'><%=rs.getString(2) %></option>")
<%
}
%>
</select>
</p>
2.第二种方式
```jsp
<p>
<label> 主题 </label>
<select name="ntid">
<!-- 新闻分类的数据绑定 start -->
<%
//需求:1.完成新闻分类的数据绑定
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//建立连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");
//sql语句
String sql = "select * from tb_news_theme";
//传入方法返回执行对象
PreparedStatement ps = conn.prepareStatement(sql);
//调用方法返回结果集对象
ResultSet rs = ps.executeQuery();
//遍历结果集
while(rs.next()){
out.println("<option value = '"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");
}
%>
</select>
</p>
```
六.主页面新闻数据绑定
```JSP
<!-- 需求:完成后台主页面的新闻显示绑定 start -->
<ul class="classlist">
<%
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//建立连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");
//sql语句
String sql = "select * from tb_news";
//将sql语句传入方法返回执行对象
PreparedStatement ps = conn.prepareStatement(sql);
//根据执行对象调用方法返回结果集对象
ResultSet rs = ps.executeQuery();
//遍历结果集
while(rs.next()){
out.println("<li> <a href='#'>"+rs.getString(3)+"</a> <span> 作者:"+rs.getString(4)+"      <a href='#'>修改</a>      <a href='#' onclick='return clickdel()'>删除</a></span> </li>");
}
%>
<li class='space'></li>
<p align="right"> 当前页数:[1/3] <a href="#">下一页</a> <a href="#">末页</a> </p>
</ul>
```