JDBC中resutset接口操作实例详解

 更新时间:2017年09月23日 16:08:45   作者:小明遇小红  
这篇文章主要介绍了JDBC中resutset接口操作实例详解,代码示例注释比较详细,需要的朋友可以参考下。

本文主要向大家展示JDBC接口中resutset接口的用法实例,下面我们看看具体内容。

1. ResultSet细节1

功能:封锁结果集数据

操作:如何获得(取出)结果

package com.sjx.a;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.junit.Test;
  //1. next方法,向下移动并判断是否有内容
  //2. getXXX方法,根据列索引或列名获得列的内容
public class Demo {
  @Test
  public void fun1() throws Exception{
    //1 注册驱动
    Class.forName("com.mysql.jdbc.Driver");
    //2 获得连接
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day05", "root", "1234");
    //3 创建Statement
    Statement st = conn.createStatement();
    //4 书写sql
    String sql = "select * from t_user" ;
    //5 执行sql
    ResultSet rs = st.executeQuery(sql);
    //向下移动一行,并判断
    while(rs.next()){
      //有数据
      //取数据:getXXX 
      int id = rs.getInt(1);//获得第一列的值
      //int id rs.getInt("id");// 获得id列的值
      String name = rs.getString(2);//获得第二列的值
      int age = rs.getInt(3);//获得第三列的值
      System.out.println(id+"==>"+name+"==>"+age);
      
      //rs.gettimestamp(columnIndex)
    }
    //6关闭资源
   st.close();
   conn.close();
  }
  /* 数据库类型      java类型
    int         int
    double       double
    decimal       double
    char       String
    varchar       String
    datetime     Date
    timestamp    Timestamp/Date
   */
}

2.ResultSet细节2

结果集的滚动-->移动结果集的指针就是滚动

结果集反向修改数据库

package com.sjx.a;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.junit.Test;
public class Demo2 {
  @Test
  public void fun1() throws Exception{
    //1 注册驱动
    Class.forName("com.mysql.jdbc.Driver");
    //2 获得连接
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day05", "root", "1234");
    //3 创建Statement
    Statement st = conn.createStatement();
    //4 书写sql
    String sql = "select * from t_user" ;
    //5 执行sql
    ResultSet rs = st.executeQuery(sql);
    //倒着遍历
      //1> 光标移动到最后一行之后
      rs.afterLast();
      //2> 遍历=>
      while(rs.previous()){//向上移动光标,并判断是否有数据
        int id = rs.getInt("id");// 获得id列的值
        String name = rs.getString("name");//获得第二列的值
        int age = rs.getInt("age");//获得第三列的值
        System.out.println(id+"==>"+name+"==>"+age);
      }
    //6关闭资源
   st.close();
   conn.close();
  }
  /* 数据库类型      java类型
    int         int
    double       double
    decimal       double
    char       String
    varchar       String
    datetime     Date
    timestamp    Timestamp/Date
   */
}

3.使用ResultSet修改记录

package com.sjx.a;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.junit.Test;
//ResultSet细节
// 2.结果集反向修改数据库
public class Demo3 {
  @Test
  public void fun1() throws Exception{
    //1 注册驱动
    Class.forName("com.mysql.jdbc.Driver");
    //2 获得连接
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day05", "root", "1234");
    //3 创建Statement
    Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    //4 书写sql
    String sql = "select * from t_user" ;
    //5 执行sql
    ResultSet rs = st.executeQuery(sql);
    //使用结果集 反向修改数据库
    rs.next();//将光标移动到第一行
    rs.updateString("name", "汤姆");// 修改第一行name列的值为中文汤姆
    rs.updateRow();// 确认修改
    //6关闭资源
   st.close();
   conn.close();
  }
}

总结

以上就是本文关于JDBC中resutset接口操作实例详解的全部内容了,希望对大家有所帮助。有兴趣的朋友欢迎参阅更多有关JDBC的文章:BaseJDBC和CRUDDAO的写法实例代码Spring jdbc中数据库操作对象化模型的实例详解Java基于jdbc连接mysql数据库操作示例等,在此也希望大家对脚本之家网站多多支持!

相关文章

  • Doris Join 优化原理文档详解

    Doris Join 优化原理文档详解

    这篇文章主要为大家介绍了Doris Join 优化原理文档详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • 数据库触发器(Trigger)的一点使用心得

    数据库触发器(Trigger)的一点使用心得

    最近了解了一下数据库触发器,并做一点实际的应用,在翻看其概念的时候,还是本着从理解的角度来学习的,但是,到了实际的应用场景中,还是有一些特别注意的地方的,下面是自己在应用中的几点体会
    2009-07-07
  • 数据库查询优化(主从表的设计)

    数据库查询优化(主从表的设计)

    写过许多的数据库查询语句,面对过许多的问题,也在磕磕碰碰中学到了很多东西。昨天在看系统数据库设计与SQL代码时,突然“发现”了许多平常不屑看到的问题,于是就萌生了把它提出来思考的念头
    2013-08-08
  • TinkerPop框架查询Gremlin图实现过程详解

    TinkerPop框架查询Gremlin图实现过程详解

    这篇文章主要为大家介绍了TinkerPop框架查询Gremlin图实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 关于Hive中的NULL空值处理问题

    关于Hive中的NULL空值处理问题

    这篇文章主要介绍了关于Hive中的NULL空值处理问题,Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能,需要的朋友可以参考下
    2023-07-07
  • 推荐Sql server一些常见性能问题的解决方法

    推荐Sql server一些常见性能问题的解决方法

    具体的SQL语句在很多情况下需要结合实际的应用情况来写,这里不作叙述。
    2008-08-08
  • postgres 数据库中的数据转换

    postgres 数据库中的数据转换

    postgres8.3以后,字段数据之间的默认转换取消了。如果需要进行数据变换的话,在postgres数据库中,我们可以用"::"来进行字段数据的类型转换。
    2009-07-07
  • 常见的SQL优化面试专题大全

    常见的SQL优化面试专题大全

    面试中如何被问到SQL优化,看这篇就对了,下面这篇文章主要给大家介绍了关于SQL优化面试的相关资料,文中将答案介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • 免费开源数据库:SQLite、MySQL和PostgreSQL的优缺点

    免费开源数据库:SQLite、MySQL和PostgreSQL的优缺点

    对于处理大规模数据和高并发访问的场景,MySQL和PostgreSQL更适合,SQLite在小型应用程序或嵌入式设备中是一种轻量级、简单和易于使用的选择,根据具体的应用需求和场景特点,选择合适的开源关系型数据库可以提供更好的性能、可扩展性和灵活性
    2024-02-02
  • sql注入之手工注入示例详解

    sql注入之手工注入示例详解

    之前和大家分享了基本的SQL注入的知识,这一篇讲的就是在得知注入点的之后,如何有效地进行脱裤。文章通过示例介绍的很详细,对大家的理解和学习很有帮助,下面来一起看看吧。
    2016-09-09

最新评论