JavaWeb之数据的绑定、修改、删除、查询

本文介绍了JavaWeb中数据绑定、修改、删除和下拉框数据绑定的步骤。通过JDBC连接数据库,使用SQL语句进行数据操作,包括查询、修改和删除,并提供了代码示例。内容适合对JavaWeb有一定基础的读者进阶学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、如何把数据绑定到页面上;

二、如何修改页面已有的数据;

三、如何删除页面上的已有数据;

四、如何完成下拉框数据的绑定;


嗨喽,又见面了,大家好我是Leaf,今天为大家带来关于JavaWeb的数据绑定、修改、删除以及查询的一些方法,好啦,话不多说,接下来进入我们的学习时间! 


一、如何把数据绑定到页面上

1.1 如何绑定数据?

绑定数据,这个数据自然就是数据库里面的数据,所有,第一步肯定就是我们的连接数据库的一连串操作,具体步骤在Leaf的前两篇文章里也有详细笔记分享,这里就不做过多赘述。

我们想在jsp页面中实现绑定数据,自然就得利用我们的<%%>,这个语法在我们之前的文章也有解释说明,不做过多解释。

步骤1:

             找到我们需要绑定数据的位置,

             在其前面套入一个<%%>,里面连接数据库,也就是JDBC的相关操作。

步骤2:

                  写好查询全部的SQL语句、循环遍历,关键就是这,利用<%%>无孔不入的特性

                  将要绑定的位置处于<%%>之外,循环之内,

                  然后就直接利用rs.getString(列下标)得到数据就ok了。

这里放上代码: 

    <%
    	//破碎重组
    	String bt=new String(bt.getBytes("iso-8859-1"),"UTF-8");//解决乱码方式
    	
    	//jdbc连接数据库查询所有的新闻:id、新闻标题、作者
    	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_news";
    	//获得执行对象
    	PreparedStatement ps = con.prepareStatement(sql);
    	//获得结果集
    	ResultSet rs = ps.executeQuery();
    	//循环遍历
    	while(rs.next()){
    %>
     	   <a > <%= rs.getString(1) %>"> </a>
    <%
    	}
    	//关闭资源
    	if(con!=null&&!con.isClosed()){
			con.close();
		}
		if(ps!=null){
			ps.close();
		}
		if(rs!=null){
			rs.close();
		}
    %>

二、如何修改页面已有的数据

学会了绑定数据,接下来再让我们一起来看看怎么修改数据吧~

2.1 如何修改数据?

修改数据,其实和增加数据是有些相似的,可以去看看Leaf的上篇文章回顾一下噢!

所谓修改,第一步自然就是拿到要修改的数据id咯,记住要先绑定原来的数据

在这个数据的基础上去进行修改,提高用户友好性!

步骤1:

        连接JDBC,这是真正执行想要的操作的前提;

        根据上个页面传来的id查询到原来的数据,进行绑定;

步骤2:

        提交表单后在另一个页面中保证没毛病的拿到所有表单的值;(拿值语法在前两篇文章) 

        再次连接JDBC,写好修改的SQL语句,运用拿到的值去给各个内容赋值;

        判断一下是否修改成功,否的话就跳转回去修改页面,反之则回绑定数据页面;

        最后记得关闭资源就ok啦。

这里放上代码: 

<%
	//实现修改
	String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
	String CNAME = "oracle.jdbc.driver.OracleDriver";
	Class.forName(CNAME);
	Connection con = DriverManager.getConnection(URL, "scott", "tiger");
	String sql = "update tb_news set tid=?,bt=?,zz=?,zy=?,nr=?,sj=? where nid=?";
	PreparedStatement ps = con.prepareStatement(sql);
	//给占位符赋值
	ps.setInt(1, Integer.parseInt(zid));
	ps.setString(2, name);
	ps.setString(3, zz);
	ps.setString(4, zy);
	ps.setString(5, nr);
	ps.setString(6, sj);
	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("/s4/news/admin.jsp");
	}
	else{//修改失败
		out.print("<script>alert('修改失败!');location.href='update.jsp?nid="+nid+"';</script>");
	}
	
%>

三、如何删除页面上的已有数据

嗨喽,上面的知识学习的咋样?好东西又来了哟~

我们现在再来看看如何删除你看着特别不爽的数据啦!

3.1 怎么删除数据呢?

不同以上操作的繁多代码,删除数据真的是很简略的!

但是要注意删除数据最重要的就是你要删除的数据的唯一id啦!

这个id要是搞错了,删除错了数据可就没有地方哭噢~

步骤1:

        就直接拿到你要删除的id;

        老朋友:连接JDBC,写好我们的删除语句,记得写条件噢!!!

        是谁又不写条件导致全表数据被删除我不说hhh

步骤2:

        最后我们再判断一下是否删除成功就好啦;

        这里要注意的是不管删除成功与否都要返回绑定数据的页面; 

这里放上代码: 

<%
	//设置编码方式
	request.setCharacterEncoding("UTF-8");
	//接收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 = "delete tb_news 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("/s4/news/admin.jsp");
	}
	else{
		//删除失败
		out.print("<script>alert('删除失败!');location.href='admin.jsp';</script>");
	}
	
%>

四、如何完成下拉框数据的绑定

接下来就让我们来看看下拉框的数据是如何绑定的吧~

4.1 绑定下拉框的数据?

看到这里咱们也是经历过绑定数据的人了!看到下拉框绑定,咱就是说:根本不慌!

步骤1:

        第一步当然是找到下拉框的位置啦;

        连接JDBC,写好查询全部的SQL语句

        循环遍历;

        再利用rs.getint(数据库表中列的下标);放到相应的位置就ok啦。

这里依旧放上代码: 

        <%
	        //jdbc连接数据库查询所有的新闻:id、新闻标题、作者
	    	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 zid";
	    	//获得执行对象
	    	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();
			}
          %>

好啦,由于今天基本都是利用旧的语法套用一些巧妙的方法来进行我们想要的操作,所有酒没有放思维导图啦,可以多去敲敲!多实践O(∩_∩)O

然后今天Leaf的学习笔记分享就到这里啦!后期照样还有许多的笔记分享以及源码案例!

感兴趣的可以关注一起学习噢!!! 

$(function(){ $.fn.extend({ SimpleTree:function(options){ //初始化参数 var option = $.extend({ click:function(a){ } },options); option.tree=this; /* 在参数对象中添加对当前菜单树的引用,以便在对象中使用该菜单树 */ option._init=function(){ /* * 初始化菜单展开状态,以及分叉节点的样式 */ this.tree.find("ul ul").hide(); /* 隐藏所有子级菜单 */ this.tree.find("ul ul").prev("li").removeClass("open"); /* 移除所有子级菜单父节点的 open 样式 */ this.tree.find("ul ul[show='true']").show(); /* 显示 show 属性为 true 的子级菜单 */ this.tree.find("ul ul[show='true']").prev("li").addClass("open"); /* 添加 show 属性为 true 的子级菜单父节点的 open 样式 */ }/* option._init() End */ /* 设置所有超链接不响应单击事件 */ this.find("a").click(function(){ $(this).parent("li").click(); return false; }); /* 菜单项 接受单击 */ this.find("li").click(function(){ /* * 当单击菜单项 * 1.触发用户自定义的单击事件,将该 标签中的第一个超链接做为参数传递过去 * 2.修改当前菜单项所属的子菜单的显示状态(如果等于 true 将其设置为 false,否则将其设置为 true) * 3.重新初始化菜单 */ option.click($(this).find("a")[0]); /* 触发单击 */ /* * 如果当前节点下面包含子菜单,并且其 show 属性的值为 true,则修改其 show 属性为 false * 否则修改其 show 属性为 true */ /* if($(this).next("ul").attr("show")=="true"){ $(this).next("ul").attr("show","false"); }else{ $(this).next("ul").attr("show","true"); }*/ /* 初始化菜单 */ option._init(); }); /* 设置所有父节点样式 */ this.find("ul").prev("li").addClass("folder"); /* 设置节点“是否包含子节点”属性 */ this.find("li").find("a").attr("hasChild",false); this.find("ul").prev("li").find("a").attr("hasChild",true); /* 初始化菜单 */ option._init(); }/* SimpleTree Function End */ }); });
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Leaf1217

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值