首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >java当中JDBC当中Scrollable和Updatable ResultSet的用法和Helloworld例子

java当中JDBC当中Scrollable和Updatable ResultSet的用法和Helloworld例子

作者头像
马克java社区
修改2021-05-12 09:58:12
修改2021-05-12 09:58:12
5500
举报
文章被收录于专栏:java大数据java大数据

马克-to-win:在前面的jdbc的Helloworld程序当中,我们接触了最简单的 Statement。那种Statement的光标只能向前移。意思就是访问完2,只能继续访问3,不能再回过头来访问1。还有就是当我们查询数据库的时 候,我们不能同时修改数据库。但在现实生活当中,我们确实有这种需求,就是如果当我们正在查询一个数据库的时候,发现某个数据有问题,想当时就修改它。对 付这种情况,sun公司专门提供了一种新的Statement。即Scrollable(可滚动的,可向前可向后)和Updatable(可更新的)的 Statement。即con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

1.Update(更新) a row程序

以下这个程序就把第二条row的id更改成了“11”。

例:5.1.1

/*when do this experiment, if it is sql server,pls make sure you have a primary key in your table.*/

import java.sql.*;

public class TestMark_to_win {

public static void main(String[] args) throws SQLException,

ClassNotFoundException {

Class.forName("com.mysql.jdbc.Driver");

Connection con = java.sql.DriverManager.getConnection(

"jdbc:mysql://localhost:3306/test", "root", "1234");

String s = "select * from login";

/* A default ResultSet object is not updatable and has a cursor that

* moves forward only. Thus, you can iterate through it only once

* and only from the first row to the last row. It is possible to

* produce ResultSet objects that are scrollable and/or updatable.

*/

Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE);

ResultSet rs = stm.executeQuery(s);

/* boolean absolute(int row) Moves the cursor to the given row

* number in this ResultSet object.who is 1? experimentally,but

* undocumentally, the order is based on the primary key column.

*/

rs.absolute(2);

/* public void updateString(String columnName,string s)throws SQLException

* Updates the designated column with a string value. The update

* methods are used to update column values in the current row o

* the insert row. The updater methods do not update the underlying

* database; instead the updateRow or insertRow methods are called

* to update the database. */

rs.updateString("id", "11");

// rs.cancelRowUpdates();

/* public void updateRow() throws SQLException Updates the

* underlying database with the new contents of the current row of

* this ResultSet object.*/

rs.updateRow();

rs.close();

stm.close();

con.close();

}

}

更多请见:https://blog.csdn.net/qq_44594249/article/details/100765190

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档