一,《绑定》
<%
//连接数据库
String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME = "oracle.jdbc.driver.OracleDriver";
//加载驱动
Class.forName(CNAME);
//创建连接
Connection con = DriverManager.getConnection(URL, "scott", "tiger");
//定义sql语句
String sql = "select * from topic order by tid";
//获得执行对象
PreparedStatement ps = con.prepareStatement(sql);
//获得结果集
ResultSet rs = ps.executeQuery();
//遍历结果集
while(rs.next()){
%>
<li><a href="/s4/news/read.jsp?nid=<%=rs.getInt(1) %>"><%= rs.getString(2) %></a>
<span> 作者:<%=rs.getString(3) %>    
<a href='/s4/news/update.jsp?nid=<%=rs.getInt(1) %>'>修改</a>     
<a href='/s4/news/dodelete.jsp?nid=<%=rs.getInt(1)%>' onclick='return clickdel()'>删除</a>
</span>
</li>
<%
}
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
%>
二,《删除》
《代码演示》
删除属于增删改查中简单型的,主要在于sql语句不要出错啦
提示:定义sql语句后面+nid是因为要根据它拿下拉框的值
<%
//设置编码方式
request.setCharacterEncoding("utf-8");
//接收表单提交过来的值
String name = request.getParameter("nid");
//两个常量
String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME = "oracle.jdbc.driver.OracleDriver";
//加载驱动
Class.forName(CNAME);
//创建连接
Connection con = DriverManager.getConnection(URL, "scott", "tiger");
//定义sql语句
String sql = "delete from tb_news where nid=?"+nid;
//获得执行对象
PreparedStatement ps = con.prepareStatement(sql);
//给占位符赋值
ps.setInt(1,Integer.parseInt(name));
//开始执行
int n = ps.executeUpdate();//影响行数
//关闭资源
if(con!=null&&con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
//判断
if(n>0){
out.print("<script>alert('删除成功');location.href='admin.jsp'</script>");
}
else{
out.print("<script>alert('删除失败');location.href='admin.jsp'</script>");
}
%>
三,《修改》
《代码演示--修改验证界面绑值》
思路:跟绑定一致 接收主界面传过来的nid 根据nid拿到其原来的信息 并绑定值
<%
//设置编码方式
request.setCharacterEncoding("utf-8");
//接收表单提交过来的值
String nid = request.getParameter("nid");//重要提示!!!没有传值,隐藏域传值
String ntid = request.getParameter("ntid");
String ntitle = request.getParameter("ntitle");
String nauthor = request.getParameter("nauthor");
String nsummary = request.getParameter("nsummary");
String ncontent= request.getParameter("ncontent");
//获取系统当前时间
String naddtime=new Date().toLocaleString();
//实现修改
String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME = "oracle.jdbc.driver.OracleDriver";
//加载驱动
Class.forName(CNAME);
//创建连接
Connection con = DriverManager.getConnection(URL, "scott", "tiger");
//定义sql语句
String sql = "update tb_news set tid=?,ntitle=?,nauthor=?,nsummary=?,naddtime=? where nid=?";
//获得执行对象
PreparedStatement ps = con.prepareStatement(sql);
//给占位符赋值
ps.setInt(1, Integer.parseInt(ntid));
ps.setString(2, ntitle);
ps.setString(3, nauthor);
ps.setString(4, nsummary);
ps.setString(5, ncontent);
ps.setString(6, naddtime);
ps.setInt(7, Integer.parseInt(nid));
//获得影响行数
int n = 0;
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
//做判断
if(n>0){//说明修改成功
//新闻主界面
response.sendRedirect("/JW04/news/admin.jsp");
}
else{//说明修改失败
out.print("<script>alert('修改失败');location.href='update.jsp?nid="+nid+"';</script>");
}
%>
《修改内容》
<h1 id="opt_type"> 修改新闻: </h1>
<form action="#" method="post">
<p>
<label> 主题 </label>
<select name="ntid">
<%
//定义sql语句
sql = "select * from topic order by tid";
//获得执行对象
ps=con.prepareStatement(sql);
//获得结果集
rs = ps.executeQuery();
//循环遍历
while(rs.next()){
//做判断 如果是当前新闻的主题编号的话就让其选中
if(rs.getInt(1)==tid){
out.print("<option selectted='selected' value='"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");//输送到页面
}
else{//否则 不选中 给你修改的权限
out.print("<option value='"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");//输送到页面
}
}
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
%>
</select>
</p>
<p>
<label> 标题 </label>
<input name="ntitle" type="text" class="opt_input" />
</p>
<p>
<label> 作者 </label>
<input name="nauthor" type="text" class="opt_input" />
</p>
<p>
<label> 摘要 </label>
<textarea name="nsummary" cols="40" rows="3"></textarea>
</p>
<p>
<label> 内容 </label>
<textarea name="ncontent" cols="70" rows="10"></textarea>
</p>
<p>
<label> 上传图片 </label>
<input name="file" type="file" class="opt_input" />
</p>
<input name="action" type="hidden" value="addnews">
<input type="submit" value="提交" class="opt_sub" />
<input type="reset" value="重置" class="opt_sub" />
</form>
</div>
</div>
四,《查看》
《代码演示》
思路:根据id拿到其他对应的新闻信息=单个查询
<%
//接收主页面传过来的值=nid
String nid = request.getParameter("nid");
//jdbc连接数据库查询所有的值
String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME = "oracle.jdbc.driver.OracleDriver";
//加载驱动
Class.forName(CNAME);
//创建连接
Connection con = DriverManager.getConnection(URL, "scott", "tiger");
//定义sql语句
String sql = "select * from topic order by tid";
//获得执行对象
PreparedStatement ps = con.prepareStatement(sql);
//获得结果集
ResultSet rs = ps.executeQuery();
//扩大作用域
String title="";
String author="";
String addtime="";
String content="";
//循环遍历
if(rs.next()){
title=rs.getString(3);
author=rs.getString(4);
addtime=rs.getString(6);
content=rs.getString(8);
}
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
%>