Jsp数据绑定(oracle数据库)、以及数据的删除and增加

一:首先先讲一下会用到哪些基础且重要的知识点、以及一些容易被忽略的一些小问题:

1.简单描述一下jsp的数据绑定,连接数据库拿到值还是一样的七步走:

a.注册驱动类

Class.forName("oracle.jdbc.driver.OracleDriver");

注意:红色字体部分是OracleDriver导包出来的。

b.连接数据库:

String url = "jdbc:oracle:thin:@localhost:1521:库名";
Connection con = DriverManager.getConnection(url, "用户名或管理员名", "密码");

c.创建PreparedStatement对象
    PreparedStatement ps = con.prepareStatement("sql语句");
d. 给占位符赋值
    ps.setString(第几个占位符, 字段名);

e. 执行sql语句

     增删改:int i=ps.executeUpdate();
   查: ResultSet rs = ps.executeQuery();

注意:后面接的可能是取值如:

int tid=rs.getInt(数据库表内字段的位置);

String title=rs.getString(数据库表内字段的位置);

f.处理结果

注意:跳转的两种方法
 

   if(rs.next()){
        //转发
        request.getRequestDispatcher("页面一.jsp").forward(request, response);
    }else{
        //失败
        out.print("");
    }

g.关闭连接

if(con!=null){

   con.close();

 }

if(ps!=null){

   ps.close();

 }

if(rs!=null){

   rs.close();

 }

这些呢是最基本的代码,还会有一些形式上的转变,友友们要学会随机应变哈!

然后我们结合上节课的页面就可以,把数据库取到的值赋值给对应的文本框、文本域等。


2,然后就是对数据的增加删除

与前面其实差不多,不同的是他会有页面的传递数据

所以小重点来了:

a.

表单传值


        用户名:
        密码:
                  

这里呢,它会通过submit 将数据提交到 dologin页面

然后在dologin页面用 request.getParameter();接收如:

//接收login页面传递的数据
    String uname = request.getParameter("uname");
    String upwd = request.getParameter("upwd");

b.href 传值:


删除

注意:这里呢确认修改才会跳转页面

假设我们连接到了数据库,就可以用此法便捷的将如: nid传到 dodelnews页面,

另一边也是用request.getParameter();接收。


最后看看部分功能完善的代码:

主页面拿到数据

<%
    		//连接数据库,查询新闻信息
    		String url = "jdbc:oracle:thin:@localhost:1521:orcl";
		Class.forName("oracle.jdbc.OracleDriver");
		Connection con=DriverManager.getConnection(url, "scott", "123");
		PreparedStatement ps=con.prepareStatement("select * from news");
		ResultSet rs=ps.executeQuery();
		while(rs.next()){
    	%>
    	
        
  • <%=rs.getString("ntitle") %> 作者: <%=rs.getString("nzz") %>      修改     删除
  • <%} %>

    到删除页面:

    <%
    	//接收要删除的新闻编号
    	String id=request.getParameter("nid");
    	int nid=Integer.valueOf(id);
    	String url = "jdbc:oracle:thin:@localhost:1521:orcl";
    	Class.forName("oracle.jdbc.OracleDriver");
    	Connection con=DriverManager.getConnection(url, "scott", "123");
    	PreparedStatement ps=con.prepareStatement("delete news where nid="+nid);
    	int i=ps.executeUpdate();
    	if(i>0){
    		out.print("");		
    	}else{
    		out.print("");
    	}
    			
    	
    %>>

    或者到添加页面:

     

    添加新闻:

    到添加页面的内部操作页面:

    <% 
        request.setCharacterEncoding("utf-8");
    	//接收添加页面的编号
    	//新闻主题编号
    	int tid=Integer.valueOf(request.getParameter("ntid"));
    	//新闻标题
    	String ntitle=request.getParameter("ntitle");
    	//新闻作者
    	String nzz=request.getParameter("nauthor");
    	//新闻内容
    	String nnr=request.getParameter("ncontent");
    	//新闻摘要
    	String nzy=request.getParameter("nsummary");
    	
        String url = "jdbc:oracle:thin:@localhost:1521:orcl";
      	Class.forName("oracle.jdbc.OracleDriver");
      	Connection con=DriverManager.getConnection(url, "scott", "123");
      	//获取新闻下一个编号
      	PreparedStatement ps=con.prepareStatement("select max(nid) from news");
      	int nextNid=1;
      	ResultSet rs=ps.executeQuery();
      	if(rs.next()){
      		nextNid=rs.getInt(1)+1;
      	}
      	//添加新闻
        ps=con.prepareStatement("insert into news values(?,?,?,?,?,sysdate,0,?)");
    	ps.setInt(1,nextNid);
    	ps.setInt(2, tid);
    	ps.setString(3, ntitle);
    	ps.setString(4, nzz);
    	ps.setString(5, nnr);
    	ps.setString(6, nzy);
    	//执行sql语句
    	int i=ps.executeUpdate();
    	if(i>0){
    		out.print("");
    	}else{
    		out.print("");
    	}
    	
    %>

    今天的小知识就到这里咯,当然代码有问题或对它有疑问的可以联系我

    下一篇见哈,┏(^0^)┛拜拜!

    你可能感兴趣的:(jsp购物车,前端框架)