JDBC解析9_UpdateWithResultSet
- package book.database;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- /**
- * 本例演示使用ResultSet更新数据库的数据. 包括修改、插入和删除
- */
- public class UpdateWithResultSet {
- /**
- * 使用ResultSet可以更新数据库的数据,前提是与之相连的Statement没有被关闭。
- * @param con
- */
- public static void update(Connection con){
- String sql = "SELECT * FROM student_basic";
- Statement sm = null;
- ResultSet rs = null;
- try {
- // 创建Statement
- // ResultSet.TYPE_SCROLL_SENSITIVE表示在ResultSet中可以随心所欲的先前向后移动游标,
- // 同时ResultSet的值有所改变的时候,它可以得到改变后的最新的值。
- // ResultSet.CONCUR_UPDATABLE表示在ResultSet中的数据记录可以任意修改,然后更新会数据库
- sm = con.createStatement(
- ResultSet.TYPE_SCROLL_SENSITIVE,
- ResultSet.CONCUR_UPDATABLE);
- rs = sm.executeQuery(sql);
- /***用ResultSet更新第一条数据***/
- // 指针移到第一条数据
- rs.absolute(1);
- // 修改数据
- rs.updateDouble("score", 70);// 修改score列
- rs.updateString(5, "updated by ResultSet!");// 修改第5列
- // 如果想取消对当前记录的修改,可以取消
- rs.cancelRowUpdates();
- System.out.println("准备用ResultSet修改一条记录!");
- // 如果决定修改,则使用updateRow方法提交修改
- rs.absolute(1);// 必须再调用一次absolute,因为,
- rs.updateDouble("score", 70);
- rs.updateString(5, "updated by ResultSet!");
- // 将修改提交到数据源
- rs.updateRow();
- OperateDB.showResultSet(rs);
- /***用ResultSet插入一条数据***/
- System.out.println("准备用ResultSet插入一条记录!");
- // 指针移动到插入点
- rs.moveToInsertRow();
- // 为新数据设置值
- rs.updateString("name", "mike");
- rs.updateInt("age", 18);
- rs.updateDouble("score", 88);
- // 将插入提交到数据源
- rs.insertRow();
- OperateDB.showResultSet(rs);
- /***用ResultSet删除一条数据***/
- rs.last();
- System.out.println("准备用ResultSet删除最后一条记录!" );
- rs.deleteRow();
- OperateDB.showResultSet(rs);
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- // 关闭Statement
- OperateDB.closeStatement(sm);
- }
- }
- public static void main(String[] args) throws ClassNotFoundException,
- SQLException {
- String dbName = "studentdb";
- String userName = "test";
- String password = "test";
- Connection con = null;
- try {
- // 获得数据库连接
- con = DBConnector.getMySQLConnection(null, null, null, dbName,
- userName, password);
- // 更新数据库
- UpdateWithResultSet.update(con);
- } catch (ClassNotFoundException e1) {
- throw e1;
- } catch (SQLException e2) {
- throw e2;
- } finally {
- // 关闭数据库连接
- OperateDB.closeConnection(con);
- }
- }
- }
转载于:https://blog.51cto.com/thinkingjava/393209
JDBC解析9_UpdateWithResultSet相关推荐
- Java解析MDB(上)-纯JDBC解析非空间数据
MDB格式数据可以用来存储空间信息,也可以用来存储非空间信息.如果用来存储非空间数据的话,跟普通的excel表格及关系型数据库是一样的.您可以使用微软的access数据库直接打开,也可以使用arcgi ...
- 【华为云技术分享】实战笔记丨JDBC问题定位指南
JDBC(Java数据库连接性)是Java API,用于管理与数据库的连接,发出查询和命令以及处理从数据库获得的结果集.JDBC在1997年作为JDK 1.1的一部分发布,是为Java持久层开发的首批 ...
- Java完美实现access库_Java之纯JDBC连接Access(值得收藏)
在Java中,解析Access一般来说有2种方式,第一种用JDBC-ODBC桥接的方式解析,第二种用纯JDBC的方式解析. 关于用JDBC-ODBC这种方式的解析,散仙在这里就不在演示了,网上搜一下, ...
- Spring、SpringMVC、Mybatis常见面试题总结
目录 Spring篇 spring是什么? spring 有哪些主要模块? Spring的IoC理解 Spring的AOP理解 AOP详解: 解释一下什么是 AOP? AOP 的原理(重要)⭐ JDK ...
- mysqljdbc设置参数
如果安装mysql软件时忘了进行参数的配置,那么应该怎么做才能重新进入mysql的参 如果安装mysql软件时忘了进行参数的配置,那么应该怎么做才能重新进入mysql的参主要是性能有区别. JDBC连 ...
- 6、HIVE JDBC开发、UDF、体系结构、Thrift服务器、Driver、元数据库Metastore、数据库连接模式、单/多用户模式、远程服务模式、Hive技术原理解析、优化等(整理的笔记)
目录: 5 HIVE开发 5.1 Hive JDBC开发 5.2 Hive UDF 6 Hive的体系结构 6.2 Thrift服务器 6.3 Driver 6.4 元数据库Metastore 6.5 ...
- mysql实现vpd_基于JDBC实现VPD:SQL解析篇
接着之前的文章<浅谈基于JDBC实现虚拟专用数据库(VPD)>的内容,今天我们重点来说一下SQL解析的问题. 从架构上我们可以看出来,如果要基于JDBC做VPD,不能绕开的一个问题,就是要 ...
- mysql jdbc 绑定变量_jdbc测试mysql数据库sql预解析(绑定变量)
jdbc测试mysql数据库sql预解析(绑定变量) 用习惯了oracle,学习mysql,想测试一下mysql绑定变量的效果.以前看网上介绍大部份都说mysql没有sql共享池的概念,所以也不存在s ...
- java解析tcp报文_JAVA语言TCP通信和JDBC示例(AIS信息解析)
JAVA实现AIS信息的接受,解析和存储 船舶自动识别系统(Automatic Identification System, 简称AIS)是一种新型的助航设备.AIS基本功能是:将本船和他船的精确船位 ...
最新文章
- 为什么 IPv6 难以取代 IPv4
- CentOS6.9中使用yum install时提示:Cannot find a valid baseurl for repo: centos-sclo-rh
- scanf不可以读空格不可以读string
- oracle java 绑定变量的值_Oracle SQL调优之绑定变量用法简介
- HBase:为客户行为生成搜索点击事件统计信息
- php怎么循环输出二维数组,PHP中遍历二维数组—以不同形式的输出操作
- 入职必备两小时入门SVN(二)
- 教你手工检测SQL注入
- 重新认识一遍JavaScript - 2
- Pyecharts之折线图与柱状图组合绘制
- 小米等部分手机机型不弹出对话框问题
- 10个物联网应用的案例
- CSS:个人常用搜索框样式
- linux内存高但是top进程不高,在Linux中通过Top运行进程查找最高内存和CPU使用率...
- C++学习笔记--多继承
- Orange Business Services 携手 Riverbed 将 SD-WAN 引入混合网络
- @Formula的使用
- C语言基础(十三)系统错误信息
- Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享
- discuz接入七牛sdk
热门文章
- mybatis-generator-gui 如何exe化
- 【新手教程】CE找武林外传基址方法
- c#中abstract与virtual的区别
- asp.net中的报销多级审批工作流 (状态机版本)
- CSS:理解:Before和:After伪元素
- Bootstrap 3: 图标转换事件 Change icons when toggle
- 使用 jQuery Mobile 与 HTML5 开发 Web App (十五) —— jQuery Mobile 与响应式
- 母函数——找单词(hdu2082)
- Linux less命令:查看文件内容
- Vi和Vim的区别和联系