JDBC 笔记4

来源:互联网 发布:js点击打开再点击关闭 编辑:程序博客网 时间:2024/05/16 20:37


SQL3.0中的行类型

Array,数组
Sturct,结构
Blob,大的二进制数据文件。
Clob,大文本文件对象。
在使用上述大对象的时候,在使用JDBC插入记录时要先插入一个空的占位对象,然后使用
select blobdata from t_blob where id = " + id + " for update 这样的语法来对获得的大对象,进行实际的写入操作 Blod通过getBinaryOutputStream()方法获取流进行写入。getBinaryStream()方法获得流来获取blob中存储的数据。
clob的操作也和blob相同。getAsciiStream() 方法用于读取存储的文本对象,getAsciiOutputStream()方法之获得流用来向文件对象写入的。


JDBC2.0扩展

JNDI和DataSourse

JNDI,(命名路径服务)也用于存储数据,但是他所存储的是一写零散的信息。
JNDI的方法是在javax.naming包下

bind(String name, Object obj) 将名称绑定到对象资源,建立指定的字符串和对象资源的关联
lookup(String name) ,通过指定的字符串获得先前绑定的资源
以下是将资源和JNDI命名绑定的方法
  public static void bind(String context, Object obj) throws NamingException
    {
        Properties pro = new Properties();
 //Weblogic的JNDI服务器参数
        pro.put(InitialContext.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
        pro.put(InitialContext.PROVIDER_URL, "t3://localhost:7001");
 
        Context ctx = new InitialContext(pro);
        ctx.bind(context, obj);//建立指定的字符串和对象资源的关联
    }


DataSourse(数据源),包含了连接数据库所需的信息,可以通过数据源或的数据库连接,有时由于某些连接数据库的信息会变更,所以经常使用包含数据库连接信息的数据源。

通过JNDI获得绑定的资源
 public static Object lookup(String context) throws NamingException
    {
        Properties pro = new Properties();
 //Weblogic的JNDI服务器参数
        pro.put(InitialContext.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
        pro.put(InitialContext.PROVIDER_URL, "t3://localhost:7001");
 
        Context ctx = new InitialContext(pro);
        return ctx.lookup(context);//通过指定的字符串获得先前绑定的资源。
    }

连接池,保持连接池中有指定个数的连接,并在程序使用过之后不关闭连接,再放回连接池中等待其他的程序在需要时来取用,这样可以大量的节省销毁和创建连接的资源消耗。

JTA分布式的事务

分布式事务是针对多个不同数据库同时操作,要保证原子操作的不可分,也不用再自己写commit,和rollback,全部都交给中间服务器来处理。(两阶段提交),也就是在中间服务器发送sql语句等待数据库回应,都回应操作成功才提交,否则同时回滚。


RowSet

行集,这是一个JavaBean(事件机制),它增强了ResultSet的功能,通过RowSet可以获得数据源,设置隔离级别,也可以发送查寻语句,也实现了离线的操作遍历,RowSet也支持预编译的Statement。
RowSet中的方法大致上和ResultSet相同,当需要使用时请查阅JAVA API参考文档。

面向对象的数据库设计

Id通常是用来表示记录的唯一性的,通常会使用业务无关的数字类型
Object id 对象的id,sequence只有Oracle才可用,对象id(OID)使用高低位算法先生成高位,在生成低位,通过运算获得对象id。

类应当对象到表,属性对应字段,对象对应记录。

类继承关系对应表,

1,每个类建一个表,为父子类每个类都对应的创建表,这种方法类关系清晰,但是如果类比较多就不适合了

2,只有具体类才建表,也就是把父类中的属性均匀分配到子类的表中,也就是父类不建表,这种表关系不能使用多态

3,所有类对应一张表,这种方法是在标中加上一个字段来区分父子类,但是只能用于类属性较少的情况下,而且数据会有冗余。

类关联关系对应表

1,一对一关联,类关系对应成表时有两种做法,一是引用主键,也就是一方引用另一方的主键既作为外键又作为自身的主键。
                                           二是外键引用,一方引用另一方的主键作为自身的外键,并且自己拥有主键。

2,一对多关联,也就是多端引用一端的主键当作外键,多端自身拥有主键。

3,多对多关系,多对多关系是通过中间表来实现的,中间表引用两表的主键当作联合主键,就可以实现多对多关联。

JDCB应用的分层

分层就是对工能的隔离,降低层与层间的耦合性。