一.查看:核心代码
思路:根据传过来的nid拿到数据库的内容给对应的值赋值
//接收从主页面admin.jsp传递过来的nid
String nid=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="select * from news279 where nid="+nid;
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//获得结果集
ResultSet rs=ps.executeQuery();
String ntitle="";//标题
String nauthor="";//作者
String naddtime="";//时间
String ncontent="";//内容
//遍历结果集
if(rs.next()){
ntitle=rs.getString(3);
nauthor=rs.getString(4);
ncontent=rs.getString(6);
naddtime=rs.getString(8);
}
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
如图:
二.删除:
思路:也是根据传来的nid然后找到对应的内容进行删除
//接收nid request
String nid=request.getParameter("nid");
//jdbc连接oracle
//根据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 news279 where nid="+nid;
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//开始执行
int n=ps.executeUpdate();
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
//判断
if(n>0){
//删除成功
response.sendRedirect("/q4/news/admin.jsp");
}else{
//说明删除失败
out.print("<script>alter('删除失败');location.href='admin'.jsp</script>");
}
如图:
三.绑定下拉框
根据tid拿到tname的值然后进行赋值
//jdbc连接oracle 查询新闻的信息 主题编号 主题名称
//两个字符串
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 topic279 order by tid ";
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//获得结果集
ResultSet rs=ps.executeQuery();
//遍历结果集
while(rs.next()){
%>
<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();
}
如图:
四.修改:
第一个思路是和阅读一样的:先根据nid获取其内容
然后在进行修改。
但不过这里修改下拉框的值要注意:有if哪里要接else否则将不能修改
<!-- 如何让下拉框默认选中 -->
<!-- <option value="11" selected="selected">ss</option>
//接收从主页面admin.jsp传递过来的nid
String nid=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="select * from news279 where nid="+nid;
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//获得结果集
ResultSet rs=ps.executeQuery();
//扩大作用域
int tid=0;//主题编号
String ntitle="";//标题
String nauthor="";//作者
String nsummary="";//摘要
String ncontent="";//内容
//遍历结果集
if(rs.next()){
tid=rs.getInt(2);
ntitle=rs.getString(3);
nauthor=rs.getString(4);
ncontent=rs.getString(6);
nsummary=rs.getString(5);
}
//该条新闻
//System.out.print(tid);
%>
<%
//定义SQL语句
sql="select *from topic279 order by tid ";
//获得执行对象
ps=con.prepareStatement(sql);
//获得结果集
rs=ps.executeQuery();
//遍历结果集
while(rs.next()){
//如果是当前这条新闻的主题编号的话就让其选中
if(rs.getInt(1)==tid){
out.print(" <option selected='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();
}
这里传参用的是:<!-- 隐藏域传值 会随着表单的提交而提交 后期根据name值取value值 -->
<input name="nid" type="hidden" value="<%=nid %>">
当点击提交时回执行以下代码:
//设置编码方式
<%
request.setCharacterEncoding("utf-8");
//接收表单的值 根据name取value值
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 news279 set tid=?,ntitle=?,nauthor=?,nsummary=?,ncontent=?,naddtime=? where nid=?";
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//给占位符赋值 7个
ps.setInt(1, Integer.parseInt(ntid));//String-->int
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=ps.executeUpdate();//影响行数
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
//判断
if(n>0){
//修改成功
response.sendRedirect("/q4/news/admin.jsp");
}
else{
//修改失败
out.print("<script>alert('修改失败');location.href='update.jsp?nid="+nid+"';</script>");
}
————————————————
版权声明:本文为CSDN博主「陨落.190」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_65795413/article/details/123929472