问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JDBC,ResultSet

发布网友 发布时间:2022-04-09 08:32

我来回答

2个回答

懂视网 时间:2022-04-09 12:53

cn.itcast.d_rs; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import org.junit.Test; //ResultSet细节 //功能: 封装结果集数据 //操作: 如何获得(取出)结果 //结论: //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); } //6关闭资源 st.close(); conn.close(); } /* 数据库类型 java类型 int int double double decimal double char String varchar String datetime Date timestamp Timestamp/Date */ }

 



8.ResultSet(了解内容)
结果集滚动;
滚动指的就是指针的位置不仅可以向下,还可以任意控制.
涉及的方法如下:
boolean absolute(int row) 将指针移动到指定位置. 参数就是位置. 第一行的位置是1. 如果填写负数表示倒数.例如-1=>最后一行. 如果移动超出范围将会返回false.
void afterLast() 将光标移动到此 ResultSet 对象的末尾,正好位于最后一行之后。 (该行没有数据)
void beforeFirst() 将光标移动到此 ResultSet 对象的开头,正好位于第一行之前。(result的初始位置)
boolean first() 将光标移动到第一行
boolean last() 将光标移动到最后一行
boolean next() 光标向下移动一行.
boolean previous() next反方向移动.向上移动一行.
//--------------------------------------------------------
使用resultSet修改记录.
默认情况下resultSet 是不能反向修改数据库中的记录的. 需要在创建Statement对象时, 通过指定参数 创建一个可以产生 可以修改数据的resultSet对象的Statement
Statement createStatement(int resultSetType, int resultSetConcurrency)
参数1 resultSetType - 结果集类型
ResultSet.TYPE_FORWARD_ONLY、 不支持结果集滚动,只能向前.
ResultSet.TYPE_SCROLL_INSENSITIVE 支持滚动, 迟钝,不敏感的结果集.
ResultSet.TYPE_SCROLL_SENSITIVE 支持滚动, 敏感的结果集.
参数2 resultSetConcurrency - 结果是否支持修改类型
ResultSet.CONCUR_READ_ONLY 不支持修改
ResultSet.CONCUR_UPDATABLE 支持修改

利用如下代码可以反向修改数据库中的数据:
String sql = "select * from emp";
Statement state = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);

ResultSet rs = state.executeQuery(sql);

rs.next();

rs.updateString("ename", "haha");

rs.updateRow();

结论: 不要使用resultSet 做修改的操作. 真的要做修改 我们要手写update语句来做.

package cn.itcast.d_rs;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import org.junit.Test;
//ResultSet细节
// 1.结果集的滚动 => 移动结果集的指针就是滚动
// 2.结果集反向修改数据库
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
 
 */
}

 

JDBC-resultSet对象细节

标签:

热心网友 时间:2022-04-09 10:01

rs是结果集。查询出的记录是一个列表,初始时指针指向的是第一条记录之前的。所以通过rs.next()来一个个的循环取出每一条记录来,每rs.next()一次指针都会向后移动一位,指向下一条记录。然后再次通过rs.getString 对每一条记录进行处理。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑分辨率设置多少合适笔记本电脑分辨率多少最佳 各尺寸笔记本电脑的最佳分辨率 2022年高考480到510分能上山东科技大学吗 朋友借了我一万块钱,现在坐牢了怎么还钱? 天王星和海王星虽然看似一对姊妹星,但还是有区别 ...值得收藏吗?现在分别只都多少钱,照片上有一个铜币的 谁能告诉我这是一枚什么样的铜币,值不值钱? 有谁知道这铜币值不值钱,懂家告诉我一下!谢谢 有谁知道这个铜钱的来历 可以进行异地公积金贷款吗 双脚踝关节皮肤变黑是什么原因?不通不痒,也没受伤,没晒太阳,没吃过药... 脚后跟脚皮有一块发黑为什么? 右脚脚腕外侧突出的那快骨头上面的皮肤发黑,呈深棕色吧,就一个硬币大小,那一块的皮肤有点厚,求原因 脚踝磨脚后,皮肤破了,皮肤那里变黑,怎么办 脚踝外侧发黑!皮肤还有点硬!请问. 脚腕的皮肤黑了一块? 脚踝有两小块皮肤 变黑 变硬, 摸着感觉很干,很糙。是怎么回事 夏天到了,长春花怎么办啊?要收到屋内吗?是不是不能暴晒啊? 台湾说唱最牛的是谁?中国的呢? 好的华人说唱歌手有哪些?越全越好 张震岳是怎样的歌手? GAI的偶像是谁? vivoIQOO手机怎么和淘宝客服发相片? 红米9pro如何发照片给淘宝客服? 狼牙山五壮士的思维导图怎么画 读书有什么好处800字作文 怎么画用于思维导图的图? 巜坚定的锡兵》坚定表现在哪些地方 五年级语文上册“思维导图”怎么画?需要全部 使用JDBC获得一个ResultSet对象,用什么方法读取数据 老凤祥的和田玉是什么料? 有被微粒贷起诉的吗 新生儿肚脐应该如何护理?需要注意什么问题? 微粒贷有2万4的本金逾期90多天,现在打电话说起诉? 西安地铁二号线从哪到哪里 西安地铁二号线的线路是从那到那,有那些站点?? 给新生儿肚脐护理应该注意什么? 从西安地铁2号线行驶路线图 西安地铁二号线路线? 西安地铁2号线全程运行时间是多少? 西安地铁二号线的线路图, 西安地铁二号线到达终点西安北站的哪个位置? 西安地铁二号线起点和终点分别在哪里? 西安地铁2号线在哪里换乘三号线? 西安地铁2号线乘坐流程 西安市地铁2号线途径站点在哪? 用excel表格做员工登记表时像“受教育情况”这样的单元格怎么设置? 申报办理绿色环保节能产品证书时间多久 没有节能环保认证书会造成废标吗? 关于JDBC中ResultSet