`
prodream
  • 浏览: 105653 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JDBC结果集的处理

    博客分类:
  • Java
阅读更多

一.查询

ResultSet对象是由统一形式的列组织的数据行组成。ResultSet对象一次只能看到一个数据行,使用next()方法走到下一个数据行

获得一行数据后,ResultSet对象可以使用getXXX方法获得字段值,将位置索引(第一列为1)或字段名传递给getXXX方法的参数

例如:
ResultSet rs=sql.executeQuery("select * from 成绩表);
String str="";
while(rs.next())
{
str=rs.getString("姓名");
System.out.println(str);
}

1.顺序查询

使用结果集合Result的next()方法,可以顺序的查询。next()方法返回一个boolean型数据。当游标移动到最后一行之后返回false

2.游动查询
###当需要在结果集中前后移动或显示结果集指定的一条记录的时候,要用到游动查询

@必须使用下述方法先获得一个Statement对象
Statement stmt=con.createStatement(int type,int concurrency);
@根据参数type,concurrency的取值情况,stmt返回响应类型的结果集
@ResultSet re=stmt.executeQuery(Sql语句)

###type的取值决定滚动的方式
static int TYPE_FORWARD_ONLY
该常量指示指针只能向前移动的 ResultSet 对象的类型。
static int TYPE_SCROLL_INSENSITIVE
该常量指示可滚动但通常不受其他的更改影响的 ResultSet 对象的类型。
static int TYPE_SCROLL_SENSITIVE
该常量指示可滚动并且通常受其他的更改影响的 ResultSet 对象的类型。

###concurrency的取值决定好似否可以用结果集根系数据库
static int CONCUR_READ_ONLY
该常量指示不可以更新的 ResultSet 对象的并发模式。
static int CONCUR_UPDATABLE
该常量指示可以更新的 ResultSet 对象的并发模式。

###滚动查询经常用到的Resultset的方法
public boolean previous()将游标向上(后)移动。当移动到结果第一行之前时返回false
public void beforeFirst()将游标放在结果集的初始位置
public void afterLast()将游标放在结果集的最后一行之后
public void first()将游标放到第一行
public last()将游标放到最后一行
public boolean isAfterLast()判断是否游标已到最后一行
public boolean isBeforeFirst()判断游标是否在第一行之前
public boolean isFirst()判断游标是否指向结果集的第一行
public boolean isLast()判断游标是否指向结果集的最后一行
public int getRow()得到当前游标所指行的行号。行号从1开始,如果结果集没有行,返回〇
public boolean absolute(int row)将游标移动到参数row指定的行号,如果row是负数,就是指倒数的第几行的意思,指向无效行则返回false

3.随机查询

@用Math类的静态方法random()可以产生yige大于0小于1 的随机数
@在有下述公式:
int i=(int)(Math.random()*number+1);
产生一个1到number之间的随机数,根据这个随机数将游标移动到响应的行,并输出行
@移动游标
rs.absolute(i);
xxx=re.getXXX();

#######################################

二.更新记录


@可以使用sql语句更新记录中字段的值。Statemnet对象调用方法:
public int executeUpdate(String sqlStatement);
通过参数sqlStatement指定的方式实现对数据库表中记录的更新


添加记录

public int executeUpdate(String sqlStatement);

删除记录

public int executeUpdate(String sqlStatement);

例如:executeUpdate("update students set 数学成绩=88 where姓名="王江")
注意:在查询语句返回结果集后,如果没有立即输出结果集的记录,儿接着执行了更新语句,那个结果集就不可能输出。

###############################################

三.用结果集更新数据库中的表


@使用内存中的ResultSet对象对底层数据库表进行更新,步骤如下:
1.用Connection对象调用如下方法,对一个可以更新底层数据库的Statement对象sql:
CreateStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSetv.CONCUR_UPADATABLE);
2.执行语句获得ResultSet对象
3.调用响应updateXXX的方法对ResultSet对象中所有行的列值进行更新操作。
4.将rs移动到想要更新的行,然后调用updateRow()方法,更新此行。如果使用rs.insertRow()方法将更新的结果集作为一个新的记录插入到底层的数据库中,此行中未被更新的值的字段在插入后的值默认为null

分享到:
评论

相关推荐

    jdbc数据集生成器

    总的来说,jdbc数据集生成器是一个提升开发效率的实用工具,它简化了数据查看和分享的过程,特别是在处理大量数据库查询结果时。通过理解和利用这样的工具,开发者可以更好地管理和操作数据库,提高工作效率。

    JDBC高级教程

    8. **JDBC结果集处理** ResultSet对象提供了迭代访问查询结果的方法。通过`next()`方法移动光标,`getString()`, `getInt()`等方法获取列值。注意处理完结果后要关闭ResultSet,以释放资源。 9. **JDBC异常处理** ...

    impala数据库JDBC驱动集

    使用JDBC驱动,开发者可以编写Java代码来创建数据库连接、执行SQL语句、处理查询结果等。JDBC驱动分为几种类型,如Type 1、Type 2、Type 3和Type 4,其中Type 4是纯Java实现的,直接与数据库通信,通常效率更高且更...

    jdbc连接oracle字符集不同出现乱码

    综上所述,当使用 JDBC 连接 Oracle 数据库并遇到字符集不同导致的乱码问题时,可以通过调整 SQL 语句的编码或结果集的编码来解决。这两种方法都可以有效地避免乱码问题的发生,但在实际应用中应根据具体情况选择最...

    JDBC驱动包合集(mysql、oracle、mssql等数据库)

    MySQL Connector/J是官方提供的Java驱动,它实现了JDBC API,使得Java应用程序可以通过标准的JDBC接口与MySQL数据库进行交互,如建立连接、执行SQL查询、处理结果集等。 2. **Oracle JDBC驱动**:`ojdbc14_g.jar`是...

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    在处理数据库操作时,理解不同类型的查询结果集及其适用场景至关重要。面对“只进结果集不支持请求的操作”的异常,通过调整查询类型、使用原生SQL或优化数据库连接配置,可以有效避免此类问题,确保应用程序的正常...

    jdbc jdbc jdbc

    9. **性能优化**:JDBC提供了多种优化技巧,如关闭不再需要的资源(如结果集、Statement和连接),使用连接池来重用连接,以及合理使用`PreparedStatement`避免SQL注入。 10. **JDBC API的扩展**:随着技术的发展,...

    JDBCJDBC高级应用

    - JDBC 2.0 引入了可更新的结果集,允许直接在结果集上进行更新、插入和删除操作,而无需通过 `Statement` 的 `executeUpdate()` 方法执行SQL语句。 - 创建可更新结果集时,需要指定并发性类型,如 `ResultSet....

    sqljdbc和sqljdbc4 sqlserver最新驱动

    使用SQLJDBC或SQLJDBC4驱动,Java开发者可以使用JDBC API来创建数据库连接,执行SQL语句,处理结果集等。基本步骤如下: - 加载驱动:`Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");` - 建立...

    异常处理和JDBC

    7. **多种方法和功能**:JDBC不仅支持基本的SQL操作,还包括更复杂的功能,如存储过程调用、游标操作、批处理和结果集的滚动等。这些功能增强了Java应用程序与数据库的交互能力。 综上所述,“异常处理和JDBC”涵盖...

    Spring Data JDBC与JDBC的区别

    `JdbcTemplate`是Spring提供的工具类,用于简化JDBC操作,例如执行SQL和处理结果集。`RowMapper`接口用于将结果集映射到Java对象。 集成Spring Data JDBC可以减少代码量,提高可维护性,并且由于Spring的其他模块...

    jdbc2000,jdbc2005

    2. **结果集的维护(Result Set Maintenance)**:允许在结果集中插入、删除和更新行,使得对结果集的操作更加直接。 3. **SQLXML类型(SQLXML Type)**:支持XML数据类型的处理,使数据库和XML数据之间的交互更为...

    JDBC(lib)驱动包集

    - 处理结果集,读取数据或更新数据库。 - 关闭结果集、Statement和Connection,释放资源。 在实际开发中,为了提高性能和管理连接,通常会使用连接池技术,如C3P0、HikariCP等。这些连接池管理组件可以预先初始化...

    jdbc核心代码.docx

    使用JDBC,开发者可以编写Java程序来连接数据库、执行SQL语句、处理结果集和释放资源。 JDBC核心步骤 1. 添加JAR包 在使用JDBC之前,需要将JDBC驱动程序的JAR包添加到CLASSPATH中。不同的数据库管理系统需要不同...

    JDBC学习资料 jdbc编程

    JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如执行SQL语句、连接数据库以及处理返回结果等功能。它是Java平台中用于数据库访问的标准API,类似于ODBC...

    JDBC6和JDBC14

    5. **处理结果集**:如果执行的是查询语句,可以通过ResultSet对象遍历和处理查询结果。 6. **关闭资源**:最后,确保关闭ResultSet、Statement和Connection以释放系统资源。 JDBC的使用大大简化了Java程序与...

    JDBC详解(连接操作数据库、处理大数据、批处理)

    5. **处理结果集**:如果执行的是查询语句,需要通过`ResultSet`接口处理结果集。 6. **关闭资源**:在完成所有数据库操作后,需要关闭`ResultSet`、`Statement`和`Connection`对象,释放资源。 #### 五、示例代码...

    jdbc.zip_java jdbc_java+jdbc_jdbc_jdbc Java_zip

    5. **处理结果**:对于查询语句,使用ResultSet对象遍历和处理结果;对于更新语句,检查返回的更新计数。 6. **关闭资源**:在完成操作后,必须关闭ResultSet、Statement和Connection,以释放数据库资源。 在客户端...

Global site tag (gtag.js) - Google Analytics