1. package book.database;
  2. import java.sql.Connection;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.sql.Statement;
  6. /**
  7. * 本例演示使用ResultSet更新数据库的数据. 包括修改、插入和删除
  8. */
  9. public class UpdateWithResultSet {
  10. /**
  11. * 使用ResultSet可以更新数据库的数据,前提是与之相连的Statement没有被关闭。
  12. * @param con
  13. */
  14. public static void update(Connection con){
  15. String sql = "SELECT * FROM student_basic";
  16. Statement sm = null;
  17. ResultSet rs = null;
  18. try {
  19. // 创建Statement
  20. // ResultSet.TYPE_SCROLL_SENSITIVE表示在ResultSet中可以随心所欲的先前向后移动游标,
  21. // 同时ResultSet的值有所改变的时候,它可以得到改变后的最新的值。
  22. // ResultSet.CONCUR_UPDATABLE表示在ResultSet中的数据记录可以任意修改,然后更新会数据库
  23. sm = con.createStatement(
  24. ResultSet.TYPE_SCROLL_SENSITIVE,
  25. ResultSet.CONCUR_UPDATABLE);
  26. rs = sm.executeQuery(sql);
  27. /***用ResultSet更新第一条数据***/
  28. // 指针移到第一条数据
  29. rs.absolute(1);
  30. // 修改数据
  31. rs.updateDouble("score", 70);// 修改score列
  32. rs.updateString(5, "updated by ResultSet!");// 修改第5列
  33. // 如果想取消对当前记录的修改,可以取消
  34. rs.cancelRowUpdates();
  35. System.out.println("准备用ResultSet修改一条记录!");
  36. // 如果决定修改,则使用updateRow方法提交修改
  37. rs.absolute(1);// 必须再调用一次absolute,因为,
  38. rs.updateDouble("score", 70);
  39. rs.updateString(5, "updated by ResultSet!");
  40. // 将修改提交到数据源
  41. rs.updateRow();
  42. OperateDB.showResultSet(rs);
  43. /***用ResultSet插入一条数据***/
  44. System.out.println("准备用ResultSet插入一条记录!");
  45. // 指针移动到插入点
  46. rs.moveToInsertRow();
  47. // 为新数据设置值
  48. rs.updateString("name", "mike");
  49. rs.updateInt("age", 18);
  50. rs.updateDouble("score", 88);
  51. // 将插入提交到数据源
  52. rs.insertRow();
  53. OperateDB.showResultSet(rs);
  54. /***用ResultSet删除一条数据***/
  55. rs.last();
  56. System.out.println("准备用ResultSet删除最后一条记录!" );
  57. rs.deleteRow();
  58. OperateDB.showResultSet(rs);
  59. rs.close();
  60. } catch (SQLException e) {
  61. e.printStackTrace();
  62. } finally {
  63. // 关闭Statement
  64. OperateDB.closeStatement(sm);
  65. }
  66. }
  67. public static void main(String[] args) throws ClassNotFoundException,
  68. SQLException {
  69. String dbName = "studentdb";
  70. String userName = "test";
  71. String password = "test";
  72. Connection con = null;
  73. try {
  74. // 获得数据库连接
  75. con = DBConnector.getMySQLConnection(null, null, null, dbName,
  76. userName, password);
  77. // 更新数据库
  78. UpdateWithResultSet.update(con);
  79. } catch (ClassNotFoundException e1) {
  80. throw e1;
  81. } catch (SQLException e2) {
  82. throw e2;
  83. } finally {
  84. // 关闭数据库连接
  85. OperateDB.closeConnection(con);
  86. }
  87. }
  88. }

转载于:https://blog.51cto.com/thinkingjava/393209

JDBC解析9_UpdateWithResultSet相关推荐

  1. Java解析MDB(上)-纯JDBC解析非空间数据

    MDB格式数据可以用来存储空间信息,也可以用来存储非空间信息.如果用来存储非空间数据的话,跟普通的excel表格及关系型数据库是一样的.您可以使用微软的access数据库直接打开,也可以使用arcgi ...

  2. 【华为云技术分享】实战笔记丨JDBC问题定位指南

    JDBC(Java数据库连接性)是Java API,用于管理与数据库的连接,发出查询和命令以及处理从数据库获得的结果集.JDBC在1997年作为JDK 1.1的一部分发布,是为Java持久层开发的首批 ...

  3. Java完美实现access库_Java之纯JDBC连接Access(值得收藏)

    在Java中,解析Access一般来说有2种方式,第一种用JDBC-ODBC桥接的方式解析,第二种用纯JDBC的方式解析. 关于用JDBC-ODBC这种方式的解析,散仙在这里就不在演示了,网上搜一下, ...

  4. Spring、SpringMVC、Mybatis常见面试题总结

    目录 Spring篇 spring是什么? spring 有哪些主要模块? Spring的IoC理解 Spring的AOP理解 AOP详解: 解释一下什么是 AOP? AOP 的原理(重要)⭐ JDK ...

  5. mysqljdbc设置参数

    如果安装mysql软件时忘了进行参数的配置,那么应该怎么做才能重新进入mysql的参 如果安装mysql软件时忘了进行参数的配置,那么应该怎么做才能重新进入mysql的参主要是性能有区别. JDBC连 ...

  6. 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 ...

  7. mysql实现vpd_基于JDBC实现VPD:SQL解析篇

    接着之前的文章<浅谈基于JDBC实现虚拟专用数据库(VPD)>的内容,今天我们重点来说一下SQL解析的问题. 从架构上我们可以看出来,如果要基于JDBC做VPD,不能绕开的一个问题,就是要 ...

  8. mysql jdbc 绑定变量_jdbc测试mysql数据库sql预解析(绑定变量)

    jdbc测试mysql数据库sql预解析(绑定变量) 用习惯了oracle,学习mysql,想测试一下mysql绑定变量的效果.以前看网上介绍大部份都说mysql没有sql共享池的概念,所以也不存在s ...

  9. java解析tcp报文_JAVA语言TCP通信和JDBC示例(AIS信息解析)

    JAVA实现AIS信息的接受,解析和存储 船舶自动识别系统(Automatic Identification System, 简称AIS)是一种新型的助航设备.AIS基本功能是:将本船和他船的精确船位 ...

最新文章

  1. 为什么 IPv6 难以取代 IPv4
  2. CentOS6.9中使用yum install时提示:Cannot find a valid baseurl for repo: centos-sclo-rh
  3. scanf不可以读空格不可以读string
  4. oracle java 绑定变量的值_Oracle SQL调优之绑定变量用法简介
  5. HBase:为客户行为生成搜索点击事件统计信息
  6. php怎么循环输出二维数组,PHP中遍历二维数组—以不同形式的输出操作
  7. 入职必备两小时入门SVN(二)
  8. 教你手工检测SQL注入
  9. 重新认识一遍JavaScript - 2
  10. Pyecharts之折线图与柱状图组合绘制
  11. 小米等部分手机机型不弹出对话框问题
  12. 10个物联网应用的案例
  13. CSS:个人常用搜索框样式
  14. linux内存高但是top进程不高,在Linux中通过Top运行进程查找最高内存和CPU使用率...
  15. C++学习笔记--多继承
  16. Orange Business Services 携手 Riverbed 将 SD-WAN 引入混合网络
  17. @Formula的使用
  18. C语言基础(十三)系统错误信息
  19. Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享
  20. discuz接入七牛sdk

热门文章

  1. mybatis-generator-gui 如何exe化
  2. 【新手教程】CE找武林外传基址方法
  3. c#中abstract与virtual的区别
  4. asp.net中的报销多级审批工作流 (状态机版本)
  5. CSS:理解:Before和:After伪元素
  6. Bootstrap 3: 图标转换事件 Change icons when toggle
  7. 使用 jQuery Mobile 与 HTML5 开发 Web App (十五) —— jQuery Mobile 与响应式
  8. 母函数——找单词(hdu2082)
  9. Linux less命令:查看文件内容
  10. Vi和Vim的区别和联系