一、绑定
所谓的绑定数据就是相关的查询语句
//jdbc连接数据库
//jdbc连接Oracle查询所有的新闻:新闻id 新闻
String CNAME="oracle.jdbc.driver.OracleDriver";
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
//加载驱动
Class.forName(CNAME);
//创造连接
Connection con=DriverManager.getConnection(URL, "scott", "tiger");
//定义SQL语句
String sql="select * from topic280";
以上面为例子:数据库表名为topic280,做完基本的jdbc后我们就要执行和插入执行的数据
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//获得结果集
ResultSet rs=ps.executeQuery();
//循环遍历
while(rs.next()){
%>
<a href='/s5/news/yk.jsp?tid=<%=rs.getInt(1) %>'><b><%=rs.getString(2) %></b></a>
<%
}
%>
我们直接把查询的值嵌套在a标签里面即可
二、删除
删除也就是要根据所点击id删除
当用户点击删除按钮时,我们要弹出询问框问用户是否要确认删除
//自定义询问对话框 当m=0时那么用户就是选择了确定我们就要删除数据然后回到被删除界面 反正当用户点击取消时.那么m!=0所以我们就只要直接返回页面即可
String nid=request.getParameter("nid");
Object[] options={"波哥好帅(确认)","波哥超级帅(取消)"};
int m=JOptionPane.showOptionDialog(null,"波哥帅吗?(你确定要删除这条评论吗?)", "波哥好帅", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
if(m==0){//确认
//接收nid 根据键拿到值
String pid=request.getParameter("pid");
//jdbc删除 delete from pl280 where
//jdbc连接Oracle查询所有的新闻:id 新闻标题 作者
String CNAME="oracle.jdbc.driver.OracleDriver";
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
//加载驱动
Class.forName(CNAME);
//创造连接
Connection con=DriverManager.getConnection(URL, "scott", "tiger");
//定义SQL语句
String sql="delete from pl280 where pid="+pid;
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//开始执xin
int n=ps.executeUpdate();//影响行数
//判断
//关闭资源
out.print(n);
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(n>0){
//删除成功
response.sendRedirect("/s5/news/read.jsp?nid="+nid);
}
else{
//删除失败
out.print("<script>alert('删除失败');location.href='read.jsp?nid="+nid+"';</script>");
}
}
else{
//取消跳转到阅读页面
response.sendRedirect("/s5/news/read.jsp?nid="+nid);
}
这里特别注意,在返回界面的时候一定要把独立的编号传回去
三、修改
修改就稍微复杂点了,首先当用户点击修改的时候我们要把用户所点击的相关内容全部传过去,其次就是当修改成功后返回页面要传独立的id,修改失败则也要把id传到当前页面
//设置编码方式
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 news280 set tid=?,ntitle=?,nauthor=?,nsummary=?,ncontent=?,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=ps.executeUpdate();
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
//做判断
if(n>0){//说明修改成功
//新闻主界面
response.sendRedirect("/s5/news/admin.jsp");
}
else{//说明修改失败
out.print("<script>alert('修改失败');location.href='update.jsp?nid="+nid+"';</script>");
}