204 次查看
Cookie 通常设置在 HTTP 头部(尽管 JavaScript 也可以直接在浏览器上设置 Cookie)。设置 Cookie 的 JSP 可能会发送如下所示的头部:HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name = xyz; expires = Friday, 04-Feb-07 22:03:38 GMT; path = /; domain = tutorialspoint.com Connection: close Content-Type: text/html 正如您所看到的,Set-Cookie 头部包含一个名称值对、一个 GMT 日期、一个路径和一个域名。名称和值将进行 URL 编码。expires 字段是一个指令…… 阅读更多
262 次查看
Cookie 是存储在客户端计算机上的文本文件,它们用于各种信息跟踪目的。JSP 使用底层的 servlet 技术透明地支持 HTTP Cookie。识别和返回用户涉及三个步骤:服务器脚本向浏览器发送一组 Cookie。例如,姓名、年龄或身份证号码等。浏览器将此信息存储在本地机器上以备将来使用。当浏览器下次向 Web 服务器发送任何请求时,它会将这些 Cookie 信息发送到服务器,服务器使用这些信息来识别用户或用于其他目的…… 阅读更多
261 次查看
Savepoint 接口为您提供了额外的交易控制。大多数现代数据库管理系统在其环境中支持保存点,例如 Oracle 的 PL/SQL。当您设置保存点时,您会在事务中定义一个逻辑回滚点。如果保存点之后发生错误,您可以使用回滚方法撤消所有更改或仅撤消保存点之后进行的更改。Connection 对象有两个新方法可以帮助您管理保存点:setSavepoint(String savepointName):定义一个新的保存点。它还会返回一个 Savepoint 对象。releaseSavepoint(Savepoint savepointName):删除一个 Savepoint。请注意,它需要一个 Savepoint 对象…… 阅读更多
273 次查看
我们有两种类型的 ResultSet 对象,即仅向前和双向的,顾名思义,您只能在一个方向(向前)移动仅向前 ResultSet 的指针,而在双向 ResultSet 中,您可以双向移动指针。ResultSet 接口提供了几种方法来遍历这两种类型的 ResultSet 对象。下表列出了遍历 ResultSet 对象的各种方法。方法描述next()此方法将 resultset 指针向前移动一行。Previous()此方法将 resultset 指针向后移动一行。first()此方法将 resultset 指针移动到第一行。last()此方法将 resultset 指针移动到最后一行。relative()此方法接受一个…… 阅读更多
2K+ 次查看
转义语法使您可以灵活地使用数据库特定功能,而使用标准 JDBC 方法和属性无法获得这些功能。一般的 SQL 转义语法格式如下所示:{keyword 'parameters'}以下是 JDBC 中的各种转义语法:d、t、ts 关键字:它们有助于识别日期、时间和时间戳文字。如您所知,没有两个数据库管理系统以相同的方式表示时间和日期。此转义语法告诉驱动程序以目标数据库的格式呈现日期或时间{d 'yyyy-mm-dd'}其中 yyyy = 年,mm = 月;dd = 日期。使用此语法 {d '2009-09-03'} 是 2009 年 3 月 9 日。示例// 创建一个 Statement 对象…… 阅读更多
93 次查看
要更新 ResultSet 的内容,您需要通过将 ResultSet 类型创建为可更新的来创建一个语句,如下所示:// 创建一个 Statement 对象 Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);就像 getXXX() 和 setXXX() 方法一样,ResultSet 接口还提供了一些方法来更新 result set updateXXX() 中一行的内容。这些方法接受表示要更新行的索引的整数值,或表示要更新行的列标签的字符串值。请注意,如果您需要更新 ResultSet 的内容,则表应具有主键。示例假设我们有一个名为 Employees 的表,其中包含 5 条记录,如下所示…… 阅读更多
274 次查看
RowSet 是 ResultSet 对象的包装器。它可以连接、断开数据库连接,并且可以序列化。它通过设置属性来维护一个 JavaBean 组件。您可以通过网络传递 RowSet 对象。默认情况下,RowSet 对象是可滚动的且可更新的,它用于使 ResultSet 对象可滚动且可更新。您可以使用 RowSetProvider.newFactory().createJdbcRowSet() 方法获取 RowSet。示例假设我们在数据库中有一个名为 dataset 的表,如下所示:+--------------+-----------+ | mobile_brand | unit_sale | +--------------+-----------+ | Iphone | 3000 | | Samsung | 4000 ... 阅读更多
4K+ 次查看
以下是存储过程的优点:由于存储过程已编译并存储,因此每次调用过程时,响应速度都很快。您可以将所有必需的 SQL 语句分组到一个过程中并立即执行它们。由于过程存储在数据库服务器上,速度比客户端快。您可以使用它来执行所有复杂的查询,这将更快。使用过程,您可以避免代码重复,此外,您可以使用其他 SQL 功能,例如调用存储函数。编译存储过程后,您可以在任意数量的应用程序中使用它。如果任何更改…… 阅读更多
3K+ 次查看
以下是 RowSet 和 ResultSet 之间的区别:ResultSetRowSetResultSet 始终与数据库保持连接。RowSet 可以连接到数据库,也可以与数据库断开连接。它不能被序列化。RowSet 对象可以被序列化。ResultSet 对象不能通过网络传递给其他对象。您可以通过网络传递 RowSet 对象。ResultSet 对象不是 JavaBean 对象您可以使用 executeQuery() 方法创建/获取结果集。ResultSet 对象是 JavaBean 对象。您可以使用 RowSetProvider.newFactory().createJdb cRowSet() 方法获取 RowSet。默认情况下,ResultSet 对象不可滚动或不可更新。默认情况下,RowSet 对象是可滚动的且可更新的。阅读更多
169 次查看
ResultSet 接口的 `next()` 方法将当前 ResultSet 对象的指针/游标移动到当前位置的下一行。此方法返回一个布尔值。如果在其当前位置之后没有下一行,则此方法返回 false,否则返回 true。因此,可以在 while 循环中使用此方法迭代 ResultSet 对象的内容。`while(rs.next()){ }` 获取每个记录的列值 ResultSet 接口还提供 getter 方法 (getXXX()) 来检索一行中每列的值,每个 getter 方法有两个变体:`getXXX(int columnIndex)`:接受一个整数作为索引值... 阅读更多