12.JDBC
/*使用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的更多相关文章
- Java Web整合开发(12) -- JDBC
JDBC访问数据库的一般步骤: 注册驱动,获取连接,获取Statement,执行SQL并返回结果集,遍历结果集显示数据,释放连接. Connection conn = null; Statement ...
- java_web学习(12)JDBC
数据持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的 ...
- 原生态jdbc的应用技术
为了更好的了解jdbc,最近查阅了前期学习的资料,整理归纳了一下,整理出来了一套jdbc常用的工具类.之所以在这里撰文,一来可以和大家共享技术的魅力,二来可以方便以后的查阅方便.以下是一个jdbc的优 ...
- [转载]JavaEE学习篇之——JDBC详解
原文链接:http://blog.csdn.net/jiangwei0910410003/article/details/26164629 目录1.摘要2.JDBC的使用步骤 1.注册驱动 只做一次 ...
- JDBC驱动汇总
Microsoft SQL Server (6.5, 7, 2000 and 2005) and Sybase (10, 11, 12). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
- JDBCTemplate简化JDBC的操作(二)
一.Spring对不同的持久化支持: Spring为各种支持的持久化技术,都提供了简单操作的模板和回调 ORM持久化技术 模板类 JDBC org.springframework.jdbc.core. ...
- jdbc知识点(连接mysql)
jdbc连接mysql 1.JDBC简介 JDBC: 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库.从根本上来说,JDBC ...
- 如何自学 Java 开发
如何自学 Java 开发? 568赞同反对,不会显示你的姓名 李艾米IT路上学习 568 人赞同 Java Web前端技术 HTML 入门视频课程 1 HTML 简介 2 HTML基本结构[ 3 HT ...
- ibatis
ibatis学习笔记(一)>>>>>>>sqlMapConfig.xml文件详解 1.sqlMapConfig.xml配置文件详解: Xml代码 1. < ...
随机推荐
- 08ListView动态列表组件 以及循环动态数据
效果: main.dart import 'package:flutter/material.dart'; import 'res/listData.dart'; /* ListView:参数 scr ...
- spark入门备忘---1
import org.apache.spark.{SparkContext, SparkConf} import scala.math.random /** * 利用spark进行圆周率的计算 */ ...
- nodejs连接mongodb(密码)
const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://user:password@localhost:2 ...
- 生产订单BADI实例
转自:https://blog.csdn.net/wbin9752/article/details/7951390 以生产订单收货为例: 1.BADI的查找方法: SE38在程序中搜索关键字CL_EX ...
- 关于对VGA、DVI、HDMI的区别
VGA接口: DVI接口: HDMI接口 可以这么理解: 1. VGA传输普通视频信号,DVI传输高清视频信号,HDMI传输高清视频信号并支持音频传输.2. HDMI的三种接口只有大小区别,功能没有任 ...
- SpringBoot: 14.异常处理方式4(使用SimpleMappingExceptionResolver处理异常)(转)
修改异常处理方法3中的全局异常处理Controller即可 package bjsxt.exception; import org.springframework.context.annotation ...
- Blynk系列随笔
Blynk系列随笔 1.基于Blynk服务器搭建物联网测试Demo 2.本地 Blynk服务器搭建
- dockerfile 搭建nginx镜像
昨晚看了看dockerfile的内容,想自己玩一玩.折腾了一晚上,到今天才顺利构建出来(弱鸡如我~). 首先,我新建了一个文件夹,并且放进了nginx源码包,建立了一个Dockerfile. Do ...
- 《鸟哥的Linux私房菜:基础学习篇》第二部分读书笔记
一.Linux的文件权限与目录配置 1. Linux用户身份与用户组记录的文件:默认情况下,/etc/passwd记录所有的系统账号与一般身份账号及root的相关信息,/etc/shadow记录个人的 ...
- svn clean up
1.下载sqlite3.exe 2.找到你项目的.svn文件,查看是否存在wc.db3.将sqlite3.exe放到.svn的同级目录4.启动cmd执行sqlite3 .svn/wc.db " ...