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,所有类对应于一张表,这种方法是通过加上一个字段来区分父子类,这种表关系
只能适用于类属性较少的情况下,而且数据会有冗余。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值