jdbc笔记4
Posted 陈鹏烨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdbc笔记4相关的知识,希望对你有一定的参考价值。
JDBC第四天
上午:
一.SQL3中的数据类型
Array:数组
Sturct:结构
大对象:
Blob:大的二进制数据文件对象。
Clob:大的文本文件对象。
优点:
1.理论上大小没有上限,受制于数据库表空间的大小.
2.流式读取.
使用大对象的步骤:
1.先插入一个空的占位对象empty_blob()(oracle的函数):insert into t_blob values(?,?,empty_blob());
2.获得大对象:select blob_data from t_blob where name = ? for update;
3.获取流进行写入:blob.setBinaryStream(0);
4.通过流来获取blob中存储的数据:blob.getBinaryStream()
二.JDBC2.0扩展
1.JNDI(JAVA命名目录接口)也用于存储数据,但是他所存储的是一些零散的信息,只提供简单
的API进行读取,需要服务器。
JDBC JNDI
| |
JDBC接口 JNDI接口
| |
驱动 服务提供者
| |
数据库 fs,dap,注册表
2.数据源:
包含了连接数据库所需的信息,可以通过数据源的getConnection()方法来获得数据库连接。
a.连接工厂.
b.共享:服务器端维护,客户端使用.
bind(String name, Object obj) 将名称绑定到对象资源,建立指定的字符串和对象资源的关联
lookup(String name) ,通过指定的字符串获得之前绑定的资源
下午:
3.连接池:
保持连接池中有指定个数的连接,并在程序使用过之后不关闭连接,再放回连接池中等待其他的程序在需要时来取用,
这样可以大量的节省销毁和创建连接的资源消耗。
4.分布式的事务:
分布式事务是针对多个不同数据库同时操作,要保证原子操作的不可分,事务的提交和回滚交给中间服务器来处理。
(两阶段提交),也就是在中间服务器发送sql语句等待数据库回应,都回应操作成功才提交,否则同时回滚。
5.RowSet:
行集:增强了ResultSet的功能,通过RowSet可以获得数据源,并且它还可以使用RowSet的方法。
CachedRowSet能够自动得到连接和断开连接.
6.CallableStatement:
CallableStatement是可以用非sql语句来访问数据库,他是通过调用存储过程(PL/SQL)来访问数据库的,这样保证安全.
可以使用com.prepareCall(存储过程名)方法,来执行这个存储过程。
缺点:
1.可移植性差
2.速度上的优势并不明显
三.Object-Relational-Mapping
1.对象id(OID)使用高低位算法先产生高位,再产生低位.
2.类应当对应到表,属性对应到字段,对象对应到记录,类之间的关系对应到表之间的关系.
3.类继承关系对应表的三种情况:
a,每个类建一个表,为父子类都创建对应的表,这样会共享主键,如果类比较多就不适合了.
b,只有对子类才建表,也就是把父类中的属性均匀分配到子类的表中,这种表关系不能使用多态
c,所有类对应于一张表,这种方法是通过加上一个字段来区分父子类,这种表关系
只能适用于类属性较少的情况下,而且数据会有冗余。
以上是关于jdbc笔记4的主要内容,如果未能解决你的问题,请参考以下文章