1、结果集的元数据操作

ResultSetMetaData 是描述ResultSet的元数据对象,可以通过元数据对象获取结果集的列信息,使用方式如下:

public void query() {Connection connection = DBUtil.getConnection();String sql = "SELECT ID,UNAME u,PASSWORD FROM USER";PreparedStatement prepareStatement = null;ResultSet resultSet = null;try {prepareStatement = connection.prepareStatement(sql);//获取到结果集CallableStatementresultSet = prepareStatement.executeQuery();// 通过  结果集的getMetaData() 获取到元数据对象ResultSetMetaData metaData = resultSet.getMetaData();System.out.println("获取数据列数"+metaData.getColumnCount());System.out.println("第二列的字段名是:"+metaData.getColumnName(2));System.out.println("第二列的字段别名是:"+metaData.getColumnLabel(2));} catch (SQLException e) {e.printStackTrace();} finally {DBUtil.close(resultSet, prepareStatement, connection);}
}

2、使用jdbc进行批量处理

当一次处理多条记录时,可使用jdbc进行批量操作,其基本思路是现将要执行的sql进行积攒,然后一次性发送到数据库进行执行,示例代码如下:

//获取连接
Connection connection = DBUtil.getConnection();
String sql = "INSERT INTO USER (uname , password) VALUES (? , ?)";
PreparedStatement prepareStatement = null;
try {//这里一定要注意,mysql是自动提交事务的,所以这里一定要先关闭自动提交connection.setAutoCommit(false);//通过数据库连接获取数据库操作对象prepareStatement = connection.prepareStatement(sql);// 组装sql、积攒sqlfor (int i = 0; i < 10000; i++) {prepareStatement.setObject(1, "zhangsan"+i);prepareStatement.setObject(2, i);prepareStatement.addBatch();}//一次性发送到数据库执行prepareStatement.executeBatch();//手动提交事务connection.commit();
} catch (SQLException e) {e.printStackTrace();
} finally {//关闭资源DBUtil.close(null, prepareStatement, connection);
}

3、使用jdbc调用存储过程、函数

当调用存储过程或者函数时,需要使用到 CallableStatement 类,使用的代码实例如下:

//存储过程
CREATE  PROCEDURE add(IN a INT , OUT b INT )
BEGINSET b = a * 10;
END//jdbc调用存储过程 add()//获取连接
Connection connection = DBUtil.getConnection();
//写sql,使用       {CALL 存储过程|函数}  方式调用
String sql = "{CALL getUser(?,?)}";
//获取 CallableStatement 对象
CallableStatement callableStatement = null;
try {callableStatement = connection.prepareCall(sql);//设置传入的参数callableStatement.setInt(1, 256);//执行存储过程callableStatement.execute();//因为第二个参数是OUT类型,所以这里可以获取到int result = callableStatement.getInt(2);System.out.println(result);
} catch (SQLException e) {e.printStackTrace();
} finally {DBUtil.close(null, callableStatement, connection);
}

4、使用jdbc处理事务

使用jdbc操作事务时,首先要关闭mysql的自动提交,最后手动提交,实例代码如下:

//获取连接
Connection connection = DBUtil.getConnection();
String sql = "UPDATE USER SET UNAME = ? WHERE ID = 1";
String sql2 = "UPDATE USER SET UNAME = ? WHERE ID = 2";
try {//关闭自动提交,开启事务connection.setAutoCommit(false);PreparedStatement statement1 = connection.prepareStatement(sql);statement1.setString(1, "czp");statement1.execute();int a=10 / 0;//这里出现错误,则回滚PreparedStatement statement2 = connection.prepareStatement(sql2);statement2.setString(1, "java");statement2.execute();//主动提交事务connection.commit();
} catch (SQLException e) {//出现错误时,回滚try {connection.rollback();} catch (SQLException e1) {e1.printStackTrace();}e.printStackTrace();
} finally {DBUtil.close(null, null, connection);
}

26、jdbc操作数据库(3)相关推荐

  1. Java系列技术之JDBC操作数据库-钟洪发-专题视频课程

    Java系列技术之JDBC操作数据库-22人已学习 课程介绍         JDBC连接数据库是Java系列技术中数据库知识的核心技术,是学习后续课程JavaWeb入门前需要掌握的基础! 这门课的前 ...

  2. JavaWeb:用JDBC操作数据库

    JDBC系列阅读 JavaWeb:用JDBC操作数据库 JavaWeb:JDBC之事务 JavaWeb:JDBC之数据库连接池 使用JDBC实现水果超市管理系统 1. 什么是JDBC JDBC的全称是 ...

  3. 25、jdbc操作数据库(2)

    说一下使用jdbc时涉及到的一些基本的接口和类 java.sql.Driver 是数据库驱动接口,com.mysql.jdbc.Driver是mysql对应的驱动,由数据库供应商实现,用于提供驱动,实 ...

  4. 24、jdbc操作数据库(1)

    什么是jdbc? 看一下官方怎么说,JDBC 英文名Java DataBase Connectivity,使用java连接数据库的工具,就是一组使用java代码来执行SQL语句的API. Jdbc有什 ...

  5. java监听数据库操作_第十六篇——JDBC操作数据库之监听器

    JavaWeb应用中,很多的地方都和session有关.因此session相关的事件监听器,在日常工作中非常有用. 有时候我们需要统计当前在线的人数和访问人数总数,此时就可以使用监听器技术来很简单的实 ...

  6. Mybatis介绍、jdbc操作数据库原始写法以及Mybatis架构

    文章目录 Mybatis介绍 jdbc操作数据库原生写法 使用jdbc编程问题总结 Mybatis架构 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个 ...

  7. jdba访问mysql_Java中JDBC操作数据库的步骤

    Java中JDBC操作数据库的步骤,今天给喜欢Java开发或者是想要参加Java培训学习的小伙伴们分享一些Java技能干货,那就是Java阐述jdba操作数据库的步骤,废话不多说了,随小编一起来看一下 ...

  8. java完整JDBC操作数据库

    java使用JDBC操作数据库的包含以下7个主要步骤: 1.加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的 ...

  9. 说说JDBC 操作数据库的步骤?

    分析&回答 1)加载(注册)数据库驱动(到JVM). 2)建立(获取)数据库连接. 3)创建(获取)数据库操作对象. 4)定义操作的SQL语句. 5)执行数据库操作. 6)获取并操作结果集. ...

  10. 【JDBC】JDBC 简介 ( JDBC 概念 | JDBC 本质 | 使用 JDBC 操作数据库的好处 | JDBC 提供的 API 组件 )

    文章目录 一.JDBC 概念 二.JDBC 本质 三.使用 JDBC 操作数据库的好处 四.JDBC 提供的 API 组件 一.JDBC 概念 JDBC 全称 Java DataBase Connec ...

最新文章

  1. 一键编译php,编译安装php 附加一键安装php5.6.30脚本
  2. SQL系列ROLLUP关键字
  3. oracle设置导出权限,Oracle 创建 删除 用户 导出 导入 分配权限
  4. POJ 1410 Intersection 判断线段交和点在矩形内 【计算几何】
  5. 2.27linux和windows互传文件
  6. Jasypt 加密-引言
  7. WCF的用户名+密码认证方式
  8. android 评价 星星大小,Android RatingBar 评价栏 星星 大小 样式 设置
  9. python学习随笔day3
  10. 在Ruby on Rails中对nil v。空v。空白的简要解释
  11. python在哪里写代码-python的代码在哪编写
  12. 我收集的软件序列号(转帖)
  13. 简单博饼游戏的实现(java)
  14. Thymeleaf指定背景图片以及图片如何调整大小
  15. STK9 Object Browser灰色无法操作
  16. 面对突如其来的新冠,“AI”可以做点什么?
  17. 智能手环的软硬件与产业
  18. stata实现经济生态的空间杜宾模型
  19. 锐龙r7 6800u和i5 12500h选哪个好 r76800u和i512500h对比
  20. 海康威视摄像机的实时读取篇一(OpenCV开发环境配置)

热门文章

  1. 归并排序 java 迭代_经典排序算法之归并排序(示例代码)
  2. linux开发板推荐_【新品发布】WiFi开发板XW-01-Kit,超低功耗,冷启快联,智能门锁首选!...
  3. 软件构造学习笔记-第二周
  4. [JavaWeb-MySQL]DDL_操作数据库,表
  5. C++map容器-插入和删除
  6. 2020牛客国庆集训派对day2 F题 Java大数处理
  7. 题目 2285: [蓝桥杯][2018年第九届真题]螺旋折线(数论+思维)
  8. 服务器水冷系统仿真,水冷漫谈(三)——水冷散热器仿真方法
  9. 2016ICPC沈阳站
  10. [SDOI2011]消耗战