ResultSet详细
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();
}
}
ResultSet详细的更多相关文章
- 黑马程序员:轻松精通Java学习路线连载1-基础篇!
编程语言Java,已经21岁了.从1995年诞生以来,就一直活跃于企业中,名企应用天猫,百度,知乎......都是Java语言编写,就连现在使用广泛的XMind也是Java编写的.Java应用的广泛已 ...
- Java学习路线-基础篇!
下面以黑马程序员Java学院的学习路线为例,进行一次史无前例的剖析,我会采取连载的形式,细致的讲解零基础的人怎么学习Java.先看下Java在基础阶段的知识点路线图. 内容多吗?不要被吓到了,知识点剖 ...
- ResultSet相关ResultSetMetaData详细
DatabaseMetaData 有关整个数据库的信息:表名.表的索引.数据库产品的名称和版本.数据库支持的操作. ResultSet 关于某个表的信息或一个查询的结果.您必须逐行访问数据行,但是您可 ...
- JDBC连接数据以及详细的ResultSet结果集解释
一.数据库连接 (前面为jdbc的其他参数,文章下部分为ResultSet详解) ResultSet rs = st.executeQuery(sqlStr) 1. java的sql框架支持多种数据库 ...
- Mybaits 源码解析 (八)----- 全网最详细,没有之一:结果集 ResultSet 自动映射成实体类对象(上篇)
上一篇文章我们已经将SQL发送到了数据库,并返回了ResultSet,接下来就是将结果集 ResultSet 自动映射成实体类对象.这样使用者就无需再手动操作结果集,并将数据填充到实体类对象中.这可大 ...
- Java Servlet+Objective-c图上传 步骤详细
一. Servlet 1.创建图片保存的路径 在项目的WebContent下创建一个上传图片的专属文件夹. 这个文件夹创建后,我们保存的图片就在该文件夹的真实路径下,但是在项目中是无法看到上传的图片的 ...
- java连接mysql数据库详细步骤解析
java连接mysql数据库详细步骤解析 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar 第二步:导入下载的J ...
- 【java 获取数据库信息】获取MySQL或其他数据库的详细信息
1.首先是 通过数据库获取数据表的详细列信息 package com.sxd.mysqlInfo.test; import java.sql.Connection; import java.sql.D ...
- No ResultSet was produced
遇到的详细问题: 出现了No ResultSet was produced的异常,但数据是成功插入, 大致判断异常发生在执行插入操作后,检查代码. 解决方案: 通常在executeQuery(sql) ...
随机推荐
- Codeforces 725B Food on the Plane
B. Food on the Plane time limit per test:2 seconds memory limit per test:256 megabytes input:standar ...
- 96、python version 3.6 required,which was not fount in the registry(python3.6安装scrapy)
在安装scrapy时遇到问题 环境:win10(64位), Python3.6(64位) 安装scrapy: 1.安装wheel(安装后,便支持通过wheel文件安装软件) pip3 install ...
- 微信小程序实现淡入淡出效果(页面跳转)
//目前小程序没有fadeIn(),fadeOut()方法所以还是本方法手写 <!--wxml--><!--蒙版(渐出淡去效果)--><view class=" ...
- Linux的ls命令在Windows中的应用
Linux的ls命令在Windows中的应用 注:ls是Linux中的命令.其作用是列出当前目录下的文件与文件夹.效果等同于Wndows中的dir指令. 如下图 下面是详细步骤 步骤一.在桌面新建一个 ...
- 解决无限 This file is indented with tabs instead of 4 spaces
File -> Settings -> Editor -> Code Style -> Java -> Tabs and Indents -> Use tab ch ...
- Centos系统下Lamp环境的快速搭建(超详细)
lamp的搭建对于初学者是一件很头疼的事情,所以借此机会把自己当初快速搭建linux+apche+mysql+php的方法分享大家希望能到你. 工具/原料 虚拟机及Centos操作系统 Linux基本 ...
- Git学习记录--git仓库
Git是一款强大的版本控制工具,与svn相比git的分布式提交,本地仓库等在使用时确实比较方便.当然两者之间各有优劣,我在这里不多做比较.由于之前少有接触git,只是零星大致地了解一点,所以找时间系统 ...
- J.U.C JMM. pipeline.指令重排序,happen-before(续)
前面已经介绍硬件平台Cache Coherence问题和解决办法,下面来看看Java虚拟机平台的相关知识.硬件平台处理器,高速缓存,主存之间的交互关系如下: Java内存模型(JMM) ...
- RAC某节点v$asm_disk查询hang分析处理
主题:RAC某节点v$asm_disk查询hang分析处理 环境:Oracle 11.2.0.3 RAC 故障描述:RAC环境2个节点,节点1查询v$asm_disk正常返回结果,节点2查询v$asm ...
- mysql-innoDB-多版本并发控制(MVCC)
InnoDB的MVCC,是通过在每行记录后面保存三个隐藏的列来实现的其中的两个列一个保存了行的创建时间,一个保存行的过期时间(或删除时间).当然存储的并不是实际的时间值,而是系统版本号(system ...