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,String,服务器,存储,insert)