/*使用JDBC处理大数据*/

  在实际开发中,程序需要把大文本或二进制数据保存到数据库中

  大数据LOB(Large Objects),LOB又分为clob和blob

  clob用来存储大文本 blob用于存储二进制数据,例如图像、声音、二进制等。

  对于MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和blob分别又分为:

  TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT

  TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB

/*对于MySQL中的Text类型,可调用如下方法设置(过程:1.拿到st 2.拿到文件的路径 3.通过路径创建file对象 4.设置Text属性)*/

  PreparedStatment.setCharacterStream(index,reader,length);

/*对于MySQL中Text类型,可调用如下方法获取 (过程:1.拿到rs 2.拿到reader 3.将reader中的数据读取到FileWriter)*/

  reader=resultSet.getCharacterStream(i);

  reader=resultSet.getClob(i).getCharacterStream();

  reader=resultSet.getString(i);

/*对于MySQL中的BLOB类型,可调用如下方法设置: (过程:1.拿到st 2.拿到文件的路径 3.设置Blog属性) (和Text的设置大同小异)*/

  PreparedStatment.setBinaryStream(i,inputStream,length);

/*对于MySQL中的BLOB类型,可调用如下方法获取: (过程:1.拿到rs 2.拿到InputStream(因为读取的是二进制,所以和Text有些区别) 3.将InputStream中的数据读取到FileWriter)*/

  InputStream in = resultSet.getBinaryStream(i);

  InputStream in = resultSet.getBlob(i).getBinaryStream();

/*JDBC批处理*/ (批处理执行后,要清空下批处理 st.clearBatch())

1.采用Statment.addBatch(sql)方式实现批处理

  优点:可以向数据库发送多条不同的SQL语句。

  缺点:1.SQL语句没有编译 2.当向数据库发送多条语句相同,但仅参数不同的SQL语句时(pst可以用?设定),需要重复写上很多条SQL语句

2.实现批处理的第二种方式:

  PreparedStatement.addBatch();

/*获取数据库自动生成的主键*/ (只对insert操作有效)

  PreparedStatment st = conn.prepareStatement(sql,Statement.RETURN_GENTURN_GENERATED_KEYS) (Statement.RETURN_GENTURN_GENERATED_KEYS 默认会加上)

  st.executeUpdate();

  ResultSet rs = st.getGeneratdKeys(); //得到 /*插入行*/ 的主键

/*JDBC调用存储过程*/

  1.编写存储过程

  2.在程序中调用

    得到CallableStatment,并调用存储过程(CallableStatement cStmt = connprepareCall("{call demoSp(?,?)}");

    设置参数,注册返回值,得到输出( cStmt.getString(1))

    cStmt.setString(1,"xxx"); 设置参数

    cStmt.registerOutParameter(2,Types.VARCHAR); 注册返回值

    cStmt.execute();

12.JDBC的更多相关文章

  1. Java Web整合开发(12) -- JDBC

    JDBC访问数据库的一般步骤: 注册驱动,获取连接,获取Statement,执行SQL并返回结果集,遍历结果集显示数据,释放连接. Connection conn = null; Statement ...

  2. java_web学习(12)JDBC

    数据持久化       持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的 ...

  3. 原生态jdbc的应用技术

    为了更好的了解jdbc,最近查阅了前期学习的资料,整理归纳了一下,整理出来了一套jdbc常用的工具类.之所以在这里撰文,一来可以和大家共享技术的魅力,二来可以方便以后的查阅方便.以下是一个jdbc的优 ...

  4. [转载]JavaEE学习篇之——JDBC详解

    原文链接:http://blog.csdn.net/jiangwei0910410003/article/details/26164629 目录1.摘要2.JDBC的使用步骤 1.注册驱动 只做一次 ...

  5. JDBC驱动汇总

    Microsoft SQL Server (6.5, 7, 2000 and 2005) and Sybase (10, 11, 12).   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...

  6. JDBCTemplate简化JDBC的操作(二)

    一.Spring对不同的持久化支持: Spring为各种支持的持久化技术,都提供了简单操作的模板和回调 ORM持久化技术 模板类 JDBC org.springframework.jdbc.core. ...

  7. jdbc知识点(连接mysql)

    jdbc连接mysql 1.JDBC简介 JDBC: 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库.从根本上来说,JDBC ...

  8. 如何自学 Java 开发

    如何自学 Java 开发? 568赞同反对,不会显示你的姓名 李艾米IT路上学习 568 人赞同 Java Web前端技术 HTML 入门视频课程 1 HTML 简介 2 HTML基本结构[ 3 HT ...

  9. ibatis

    ibatis学习笔记(一)>>>>>>>sqlMapConfig.xml文件详解 1.sqlMapConfig.xml配置文件详解: Xml代码 1. < ...

随机推荐

  1. 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_16.RabbitMQ研究-与springboot整合-生产者代码

    springBoot给我们提供了 RarbbitTemplate发送消息 创建测试类,因为我们是基于SpringBoot的来写的测试类.所以要加上@SpringBootTest和@RunWith的注解 ...

  2. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_22-页面静态化-静态化测试-静态化程序测试

    测试service内些的静态化的方法 先新建一个测试类 模板的id 放到下拉的静态数据里面 这样这条数据 就是用用的轮播图005这个模板 把这条数据静态化 进入到断点里面.先获取数据模型 获取模板时 ...

  3. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_17-异常处理-可预知异常处理-异常处理测试

    ResultCode有很多的实现类 cmsCode有很多类型的错误异常 pgeService内当CmsPage这个对象为空的时候,异常类型就可以抛出CmsCode里面的错误代码 if(cmsPage1 ...

  4. java字符串MD5加密后再转16进制

    话不多说上码 pom.xml <!-- MD5 --> <dependency> <groupId>org.apache.commons</groupId&g ...

  5. 将SSRF升级为RCE(AWS环境)

    原文:https://generaleg0x01.com/2019/03/10/escalating-ssrf-to-rce/ 查找域名范围: 在枚举客户端的子域名时.找到了子域名[docs] 打开这 ...

  6. iOS-AVFoundation实现二维码(ios7以上,转载)

    关于二维码扫描有不少优秀第三方库: ZBar SDK 里面有详细的文档,相应介绍也非常多,如:http://rdcworld-iphone.blogspot.in/2013/03/how-to-use ...

  7. CentOS 7下Cloudera Manager及CDH 6.0.1安装过程详解

    目录 一.概念介绍 1.CDH 概览 2.Cloudera Manager 概览 二.环境准备 1.软件版本选择 2.节点准备(四个节点) 3.配置主机名和hosts解析(所有节点) 4.关闭防火墙 ...

  8. Ubuntu 14.04安装vim8

    本文介绍两种方法安装 VIM8.1 方法一:GitHub下载源码手动安装 1.查看系统是否有安装vim:如果有,先删除 dpkg -l | grep vim 2.从git上下载 git clone h ...

  9. shell窗体实现代码雨(解闷用)

    命令过程 277 2019-11-07 17:14:39 wget https://sourceforge.net/projects/cmatrix/files/cmatrix/1.2a/cmatri ...

  10. 【并行计算-CUDA开发】英伟达硬件解码器分析

    这篇文章主要分析 NVCUVID 提供的解码器,里面提到的所有的源文件都可以在英伟达的 nvenc_sdk 中找到. 解码器的代码分析 SDK 中的 sample 文件夹下的 NvTranscoder ...