/*使用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. powershell命令教程

    启动 powershell #字符串操作 对象操作 "hello".Length #进程操作 PS C:\> notepad PS C:\> $process=get- ...

  2. Build Telemetry for Distributed Services之OpenTracing简介

    官网地址:https://opentracing.io/ What is Distributed Tracing? Who Uses Distributed Tracing? What is Open ...

  3. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_04-新增页面-服务端-接口开发

    api接口定义方法 api的微服务里面.CmsPageControllerApi内定义add方法,返回类型是CmsPageResult CmsPageResult继承了ResponseResult R ...

  4. BSD process name correspondlng to current thread: knernel_task Mac OS version Not yet set

    网上查了一大堆,没有一个靠谱的, 百度,以说黑苹果装系统最容易出现这个,这个让我开始怀疑公司给我们的所谓外观的iMac是黑苹果了,因为一直很卡,比上家公司的真黑苹果还卡. 谷歌,有说重置BIOS电池的 ...

  5. Egret入门学习日记 --- 第六篇(书中 3.6~3.9节 内容)

    第六篇(书中 3.6~3.9节 内容) 在本篇写之前,还是要为昨天写的日记道歉才行,差点就误人子弟了. 没想到在程序员界最低级的错误 “单词拼写错误” 还是会经常犯. childrenCreated ...

  6. 什么是梯度下降法与delta法则?

    梯度下降法就是沿梯度下降的方向求解函数(误差)极小值.delta法则是使用梯度下降法来找到最佳权向量.拿数字识别这个案例为例,训练模型的过程通常是这样的.输入为1万张图片,也就是1万个样本,我们定义为 ...

  7. 【ARM-Linux开发】Linux链接

    链接有两种方式:硬链接和软链接. (一)软链接 软链接又叫做符号链接.基本命令为: [plain] view plain copy ln -s sourcePlace newPlace 软链接可以链接 ...

  8. jq+js获取到table标签中的value

    前端jsp页面,(这里接收后端的参数方式没有放在上面) <table> <tbody id="fPzQwQwzbrList"> <tr id=&quo ...

  9. java学习(东软睿道)2019-09-07(预课html基础)《随堂笔记》

    1. 文件名称.html 2. 后缀表示文件类型.txt .doc .ppt 3. 标签<html> <head> <body> 显示内容 <font siz ...

  10. 使用dockerfile 搭建django系统(nginx+redis+mongodb+celery)

    背景 有需求需要对django系统进行docker化,以达到灵活部署和容灾.该系统基于django 2.2版本开发,数据库采用mongodb,服务器使用nginx,因系统有部分异步任务,异步任务则采用 ...