一、查看:
//接收从主界面admin.jsp传递过来的nid
String nid=request.getParameter("nid");
//思路:根据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 tb_xw where nid="+nid;//单个查询
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//获得结果集
ResultSet rs=ps.executeQuery();
//扩大作用域
String nbt="";//标题
String nzz="";//作者
String nsj="";//时间
String nnr="";//内容
//遍历结果集
if(rs.next()){
nbt=rs.getString(3);
nzz=rs.getString(4);
nnr=rs.getString(6);
nsj=rs.getString(7);
}
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
如图:
地址栏传参: ?键=值&键=值
根据nid拿到其对应的信息,获取数据库的内容赋值过来
二、绑定下拉框:
<%
//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 tb_zt 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 request
String nid=request.getParameter("nid");
//jdbc根据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_xw 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>alert('删除失败');location.href='admin.jsp';</script>");
}
获取地址栏传过来的id,进行删除
四、修改:
<%
//接收从主界面admin.jsp传递过来的nid
String nid=request.getParameter("nid");
//思路:根据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 tb_xw where nid="+nid;//单个查询
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//获得结果集
ResultSet rs=ps.executeQuery();
//扩大作用域
int tid=0;//主题编号
String nbt="";//标题
String nzz="";//作者
String nzy="";//摘要
String nnr="";//内容
//遍历结果集
if(rs.next()){
tid=rs.getInt(2);
nbt=rs.getString(3);
nzz=rs.getString(4);
nzy=rs.getString(5);
nnr=rs.getString(6);
}
%>
<%
//jdbc连接Oracle 查询主题表的信息:主题编号 主题名称
//定义sql语句
sql="select * from tb_zt order by tid";
//获得执行对象
ps=con.prepareStatement(sql);
//获得结果集
rs=ps.executeQuery();
//遍历结果集
while(rs.next()){
//判断如果是当前这条新闻的主题编号的话 就让其选中
if(rs.getInt(1)==tid){
out.print("<option
value='"+rs.getInt(1)+"'selected='selected'>"+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 nzt=request.getParameter("ntid");
String nbt=request.getParameter("ntitle");
String nzz=request.getParameter("nauthor");
String nzy=request.getParameter("nsummary");
String nnr=request.getParameter("ncontent");
String nsj=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_xw set tid=?,nbt=?,nzz=?,nzy=?,nnr=?,ntp=? where nid=?";
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//要给占位符赋值 7个
ps.setInt(1, Integer.parseInt(nzt));//String -->int
ps.setString(2, nbt);
ps.setString(3, nzz);
ps.setString(4, nzy);
ps.setString(5, nnr);
ps.setString(6, nsj);
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>");
}
%>