JDBC大数据的采取


## JDBC的大类型数据的存取 ##

# 基本概念;
|-- 大文本类型数据和大二进制数据;
主要思想用于将大型的二进制数据(字节)
或是大型的文本数据(字符)从磁盘文件中读取
到数据库中,或是从数据库中读出到磁盘中;

简言之是数据库的流操作;


# 大文本数据;
>> 基本步骤;
|-- ClobTest.java
|-- 建库;
|-- 建表;
|-- 更新配置文件;
|-- 从流中将数据读取到数据库当中;
|-- setCharacterStream()方法的细节问题;
> 在1.6当中才会支持long类型;
> 在1.5当中只支持int类型;

|-- 从数据库中将数据读取出来;

# 大二进制数据;
>> 基本步骤;(参考文本类型方法);

## 批处理 ##

# 基本概念;
|-- 批量处理数据;


# 两种处理方式
>> Statement
|-- sql语句固定;
|-- 可以一次性执行不同的sql
>> PreaparedStatement
|-- sql参数不确定
|-- 一次性只能执行相同的语句;
|-- 内存溢出;
> 由于每次添加的数据都在内存当中;
> 所以当超出一定的限定之后可能会导致内存溢出;

|-- 优化;
> 使用判断语句;
> 分批次执行;
> 然后清空已经执行完毕的数据;

## 存储过程调用 ##

# 基本概念;
事先由DBA开发并被事先编译完成,运行在服务器上;
可提高效率和安全性;

# 使用方式
>> 定义;
>> 使用;(可参见资料);
>> 调用;

## 事务入门 ##

# 基本概念;
事物处理语言(TPL);
默认情况下一条语句就是一个单独的事务,事务是一个整体;
可以将多条执行同一个任务的语句封装成一个事务,例如转账;


# 基本步骤;
>> start transaction ; --- 开启事务
>> commit; --- 提交事务;
>> rollback;--- 回滚事务(如果失败);

# 事务的特性;
>> 原子性 --- 不可拆分,要么多条语句都成功,要么都不成功;
>> 一致性 --- 必须是数据库从一个一致性的状态,全部转化到另一个一致的状态;
>> 隔离性 --- 多线程并发访问时,一个事务不能被其他事务所干扰;
>> 持久性 --- 当事务完成之后,数据应该被永久性的保存起来;

# 隔离操作
数据库系统要负责隔离操作,写代码只需要对隔离级别进行设置。如果不进行相应设计,
可能会导致以下问题;

a,脏读:一个事务读取到了另一个事务“未提交”的数据。
b,不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同。
c,虚读(幻读):是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。


## 数据库连接池 ##
# 基本概念;
# 自定义连接池;

原文地址:https://www.cnblogs.com/bwcx1375/p/7118259.html