`

JSP复习笔记——第10章 连接数据库 之 移动游标

阅读更多
JDBC2.0:
* 批处理
* 移动游标

查询定位结果集:
查询
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%--
	此代码主要进行查询操作
--%>
<%!
	// 定义数据库驱动程序
	String DBDRIVER = "sun.jdbc.odbc.JdbcOdbcDriver" ;
	// 定义数据库连接地址
	String DBURL = "jdbc:odbc:sky" ;

	// 定义数据库连接对象,属于java.sql包中的接口
	Connection conn = null ;

	// 定义Statement对象,用于操作数据库
	Statement stmt = null ;

	// 定义一字符串变量,用于保存SQL语句
	String sql = null ;

	// 查询返回的结果集对象
	ResultSet rs = null ;
%>
<%
	// 1、加载驱动程序
	try
	{
		Class.forName(DBDRIVER) ;
	}
	catch(Exception e)
	{
		// 此处使用out.print是处于演示目的,在实际开发中所有的错误消息,绝对不能够通过out.print打印,否则会存在安全问题
		out.println("数据库驱动程序加载失败!!!") ;
	}

	// 2、连接数据库
	try
	{
		conn = DriverManager.getConnection(DBURL) ;
	}
	catch(Exception e)
	{
		out.println("数据库连接失败!!!") ;
	}

	// 3、操作数据库
	// 通过Connection对象实例化Statement对象
	try
	{
		// 声明结果集可上下移动
		stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY) ;
		// 编写查询的SQL语句
		sql = "SELECT id,name,password,age FROM person" ;
		// 查询数据库,此方法返回ResultSet对象
		rs = stmt.executeQuery(sql) ;
		// 定位到第几条数据
		rs.absolute(2) ;
%>
	<table border="1" width="80%">
	<tr>
		<td>ID</td>
		<td>姓名</td>
		<td>密码</td>
		<td>年龄</td>
	</tr>
<%
		while(rs.previous()) // 往前定位
		{
			int id = rs.getInt(1) ;
			String name = rs.getString(2) ;
			String password = rs.getString(3) ;
			int age = rs.getInt(4) ;
%>
			<tr>
				<td><%=id%></td>
				<td><%=name%></td>
				<td><%=password%></td>
				<td><%=age%></td>
			</tr>
<%
		}
%>
	</table>
<%
	}
	catch(Exception e)
	{
		out.println("操作数据库失败!!!") ;
	}
	// 4、关闭数据库
	try
	{
		// 关闭结果集
		rs.close() ;
		// 关闭操作
		stmt.close() ;
		// 关闭连接
		conn.close() ;
	}
	catch(Exception e)
	{
		out.println("数据库关闭失败!!!") ;
	}
%>
更新
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%--
	此代码主要进行查询操作
--%>
<%!
	// 定义数据库驱动程序
	String DBDRIVER = "sun.jdbc.odbc.JdbcOdbcDriver" ;
	// 定义数据库连接地址
	String DBURL = "jdbc:odbc:sky" ;

	// 定义数据库连接对象,属于java.sql包中的接口
	Connection conn = null ;

	// 定义Statement对象,用于操作数据库
	Statement stmt = null ;

	// 定义一字符串变量,用于保存SQL语句
	String sql = null ;

	// 查询返回的结果集对象
	ResultSet rs = null ;
%>
<%
	// 1、加载驱动程序
	try
	{
		Class.forName(DBDRIVER) ;
	}
	catch(Exception e)
	{
		// 此处使用out.print是处于演示目的,在实际开发中所有的错误消息,绝对不能够通过out.print打印,否则会存在安全问题
		out.println("数据库驱动程序加载失败!!!") ;
	}

	// 2、连接数据库
	try
	{
		conn = DriverManager.getConnection(DBURL) ;
	}
	catch(Exception e)
	{
		out.println("数据库连接失败!!!") ;
	}

	// 3、操作数据库
	// 通过Connection对象实例化Statement对象
	try
	{
		// 声明结果集可上下移动
		stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE) ;
		// 编写查询的SQL语句
		sql = "SELECT id,name,password,age FROM person" ;
		// 查询数据库,此方法返回ResultSet对象
		rs = stmt.executeQuery(sql) ;
		rs.last() ;
		rs.updateString("name","darkness") ;
		rs.updateString("password","wind") ;
		rs.updateInt("age",99) ;
		rs.updateRow() ;
%>
	<table border="1" width="80%">
	<tr>
		<td>ID</td>
		<td>姓名</td>
		<td>密码</td>
		<td>年龄</td>
	</tr>
<%
		while(rs.next())
		{
			int id = rs.getInt(1) ;
			String name = rs.getString(2) ;
			String password = rs.getString(3) ;
			int age = rs.getInt(4) ;
%>
			<tr>
				<td><%=id%></td>
				<td><%=name%></td>
				<td><%=password%></td>
				<td><%=age%></td>
			</tr>
<%
		}
%>
	</table>
<%
	}
	catch(Exception e)
	{
		out.println("操作数据库失败!!!") ;
	}
	// 4、关闭数据库
	try
	{
		// 关闭结果集
		rs.close() ;
		// 关闭操作
		stmt.close() ;
		// 关闭连接
		conn.close() ;
	}
	catch(Exception e)
	{
		out.println("数据库关闭失败!!!") ;
	}
%>
增加
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%--
	此代码主要进行查询操作
--%>
<%!
	// 定义数据库驱动程序
	String DBDRIVER = "sun.jdbc.odbc.JdbcOdbcDriver" ;
	// 定义数据库连接地址
	String DBURL = "jdbc:odbc:sky" ;

	// 定义数据库连接对象,属于java.sql包中的接口
	Connection conn = null ;

	// 定义Statement对象,用于操作数据库
	Statement stmt = null ;

	// 定义一字符串变量,用于保存SQL语句
	String sql = null ;

	// 查询返回的结果集对象
	ResultSet rs = null ;
%>
<%
	// 1、加载驱动程序
	try
	{
		Class.forName(DBDRIVER) ;
	}
	catch(Exception e)
	{
		// 此处使用out.print是处于演示目的,在实际开发中所有的错误消息,绝对不能够通过out.print打印,否则会存在安全问题
		out.println("数据库驱动程序加载失败!!!") ;
	}

	// 2、连接数据库
	try
	{
		conn = DriverManager.getConnection(DBURL) ;
	}
	catch(Exception e)
	{
		out.println("数据库连接失败!!!") ;
	}

	// 3、操作数据库
	// 通过Connection对象实例化Statement对象
	try
	{
		// 声明结果集可上下移动
		stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE) ;
		// 编写查询的SQL语句
		sql = "SELECT id,name,password,age FROM person" ;
		// 查询数据库,此方法返回ResultSet对象
		rs = stmt.executeQuery(sql) ;
		rs.moveToInsertRow() ;
		rs.updateString("name","darkness") ;
		rs.updateString("password","mmmmmmm") ;
		rs.updateInt("age",1) ;
		rs.insertRow() ;
%>
	<table border="1" width="80%">
	<tr>
		<td>ID</td>
		<td>姓名</td>
		<td>密码</td>
		<td>年龄</td>
	</tr>
<%
		while(rs.next())
		{
			int id = rs.getInt(1) ;
			String name = rs.getString(2) ;
			String password = rs.getString(3) ;
			int age = rs.getInt(4) ;
%>
			<tr>
				<td><%=id%></td>
				<td><%=name%></td>
				<td><%=password%></td>
				<td><%=age%></td>
			</tr>
<%
		}
%>
	</table>
<%
	}
	catch(Exception e)
	{
		out.println("操作数据库失败!!!") ;
	}
	// 4、关闭数据库
	try
	{
		// 关闭结果集
		rs.close() ;
		// 关闭操作
		stmt.close() ;
		// 关闭连接
		conn.close() ;
	}
	catch(Exception e)
	{
		out.println("数据库关闭失败!!!") ;
	}
%>
删除
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%--
	此代码主要进行查询操作
--%>
<%!
	// 定义数据库驱动程序
	String DBDRIVER = "sun.jdbc.odbc.JdbcOdbcDriver" ;
	// 定义数据库连接地址
	String DBURL = "jdbc:odbc:sky" ;

	// 定义数据库连接对象,属于java.sql包中的接口
	Connection conn = null ;

	// 定义Statement对象,用于操作数据库
	Statement stmt = null ;

	// 定义一字符串变量,用于保存SQL语句
	String sql = null ;

	// 查询返回的结果集对象
	ResultSet rs = null ;
%>
<%
	// 1、加载驱动程序
	try
	{
		Class.forName(DBDRIVER) ;
	}
	catch(Exception e)
	{
		// 此处使用out.print是处于演示目的,在实际开发中所有的错误消息,绝对不能够通过out.print打印,否则会存在安全问题
		out.println("数据库驱动程序加载失败!!!") ;
	}

	// 2、连接数据库
	try
	{
		conn = DriverManager.getConnection(DBURL) ;
	}
	catch(Exception e)
	{
		out.println("数据库连接失败!!!") ;
	}

	// 3、操作数据库
	// 通过Connection对象实例化Statement对象
	try
	{
		// 声明结果集可上下移动
		stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE) ;
		// 编写查询的SQL语句
		sql = "SELECT id,name,password,age FROM person" ;
		// 查询数据库,此方法返回ResultSet对象
		rs = stmt.executeQuery(sql) ;
		rs.absolute(4) ;
		rs.deleteRow() ;
%>
	<table border="1" width="80%">
	<tr>
		<td>ID</td>
		<td>姓名</td>
		<td>密码</td>
		<td>年龄</td>
	</tr>
<%
		while(rs.next())
		{
			int id = rs.getInt(1) ;
			String name = rs.getString(2) ;
			String password = rs.getString(3) ;
			int age = rs.getInt(4) ;
%>
			<tr>
				<td><%=id%></td>
				<td><%=name%></td>
				<td><%=password%></td>
				<td><%=age%></td>
			</tr>
<%
		}
%>
	</table>
<%
	}
	catch(Exception e)
	{
		out.println("操作数据库失败!!!") ;
	}
	// 4、关闭数据库
	try
	{
		// 关闭结果集
		rs.close() ;
		// 关闭操作
		stmt.close() ;
		// 关闭连接
		conn.close() ;
	}
	catch(Exception e)
	{
		out.println("数据库关闭失败!!!") ;
	}
%>

分享到:
评论

相关推荐

    数据库实验-游标

    数据库系统原理与设计 实验教程 之游标 实验游标答案

    Oracle数据库添加 更新 游标 过程 Java Project

    Oracle数据库是世界上最流行的数据库管理系统之一,广泛用于企业级应用开发,包括Java项目。在这个Java项目中,我们将探讨如何在Oracle数据库中添加、更新数据,并利用游标处理过程,这些都是数据库操作的重要组成...

    数据库实验六:游标的使用.pdf

    从提供的文件内容来看,这是一份关于在SQL Server数据库中使用游标的实验教程。游标是一种数据库查询的结果集,它允许逐行遍历查询结果,进行数据操作。本篇实验教程详细介绍了如何声明游标、使用游标进行数据读取、...

    oracle数据库的游标

    游标是Oracle数据库中一个重要的概念,它是一种在内存中用于存储SQL查询结果的临时工作...随着Oracle数据库的不断更新和发展,对于初学者和数据库管理员来说,学习和使用游标是数据库管理和编程中必不可少的技能之一。

    实验八数据库编程技术——游标、存储过程与触发器.pdf

    数据库编程技术——游标、存储过程与触发器 数据库编程技术是数据库管理系统中的一种重要技术,用于实现数据库的自动化管理和数据处理。本节实验重点介绍游标、存储过程和触发器三种数据库编程技术的应用。 一、...

    数据库视图和索引游标实验报告.doc

    数据库视图和索引游标实验报告 一、数据库视图 * 视图的创建:Create view Einstein_student As Select distinct instructor.name, advisor.i_ID, advisor.s_ID, student.ID, student.name From student, ...

    Oracle数据库的游标学习总结

    ### Oracle数据库的游标学习总结 #### 一、引言 在Oracle数据库中,游标是一种重要的机制,用于处理查询结果集。通过游标,我们可以逐行地读取查询结果,这对于复杂的业务逻辑处理非常有用。本文将详细介绍Oracle...

    Oracle 数据库游标使用大全

    Oracle数据库游标是数据库管理系统中用于处理查询结果的一种机制,它允许程序逐行处理查询结果,而不是一次性加载所有数据。在Oracle中,游标对于实现复杂的数据操作和控制流程至关重要,特别是在存储过程和触发器中...

    数据库实验 游标及游标并发

    数据库实验游标及游标并发 在数据库实验中,游标(Cursor)是一种重要的数据库对象,它允许开发者逐行处理查询结果,从而实现复杂的业务逻辑。在本实验中,我们将探索游标的使用和并发control机制,以提高数据库的...

    游标操作多个数据库学习之用,游标操作多个数据库

    打开游标后,通过`FETCH`命令获取第一个数据库名到`@DATABASE`变量中,然后进入循环处理每一个数据库。处理完成后关闭并释放游标。 ##### 4. 在每个数据库中执行操作 对于每个数据库,示例代码执行了以下操作: - ...

    数据库源码(游标,存储过程)大全

    游标则是另一种数据库操作工具,它允许我们逐行处理结果集,就像在文本文件中移动指针一样。在处理单条记录或需要按顺序处理数据时,游标非常有用。在SQL中,我们使用`DECLARE`定义游标,`OPEN`打开游标,`FETCH`...

    解析数据库中游标的使用方法

    数据库游标使用方法 数据库游标是系统为用户开设的一个数据缓冲区,存放 SQL 语句的执行结果。由系统或用户以变量的形式定义。用户可以用 SQL 语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理,主...

    数据库游标练习

    数据库游标是数据库管理系统中的一个重要概念,主要用于处理和操作数据集。在Oracle数据库中,游标扮演着不可或缺的角色,尤其在进行复杂的SQL操作和程序逻辑控制时。本小练习主要目的是帮助你理解和掌握如何在...

    带你彻底搞懂python操作mysql数据库(cursor游标讲解)

    3、利用python连接数据库,经常会使用游标功能 1)以python连接mysql数据库为例 2)使用游标的操作步骤 首先,使用pymysql连接上mysql数据库,得到一个数据库对象。 然后,我们必须要开启数据库中的游标功能,...

    使用游标更新数据库

    使用游标更新数据库 使用游标更新数据库是指在游标定位下,修改或删除表中指定的数据行。使用游标对数据进行更新可以提高数据库的性能和效率。 1. 游标更新的基本概念 游标是数据库中的一种数据结构,它可以用来...

    游标.sql

    游标.sql

    SQL Server 2005数据库视图、游标和自定义函数.ppt

    SQL Server 2005数据库视图、游标和自定义函数

    oracle数据库游标使用例子

    Oracle数据库中的游标是PL/SQL编程中一种重要的控制结构,它允许程序逐行处理查询结果,而不是一次性处理所有结果。游标对于处理大量数据或需要根据每行数据执行不同操作的情况非常有用。以下是关于Oracle游标使用的...

    Oracle数据库游标使用大全

    Oracle数据库中,游标是处理单条记录的重要工具,尤其在需要逐行处理查询结果集时。游标允许程序员在结果集中前进、后退,并访问每一行的数据。本篇文章主要探讨Oracle数据库中游标的使用。 首先,游标分为两种类型...

    SQL数据库中基于游标的数据更新.pdf

    总之,游标提供了比基础SQL命令更精细的数据访问和操作机制,是数据库开发者和管理员必须掌握的技术之一。通过上述知识点,我们可以明白游标在SQL数据库中扮演的角色,以及如何通过游标进行高效和精准的数据处理。

Global site tag (gtag.js) - Google Analytics