`
guiqing85
  • 浏览: 168843 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JDBC 学习笔记(六)

    博客分类:
  • JDBC
阅读更多
十、面向对象的数据库设计
类的关联,继承在数据库中的体现:
类定义―――>表定义
类属性―――>表字段
类关系―――>表关系
对  象―――>表记录
注:   Oid(对象id)―――>业务无关
       在数据库中每一条记录都对应一个唯一的id;
       Id通常是用来表示记录的唯一性的,通常会使用业务无关的数字类型
       字段的个数不会影响数据库的性能,表则越多性能越低。
(一)类继承关系对应表,
1、为每一个类建一张表。通过父类的Oid来体现继承关系。
   特点:在子类表中引用父类表的主建作为自己的外建。
   优点:方便查询。属性没有冗余。支持多态。
   缺点:表多,读写效率低。生成报表比较麻烦。
2、为每一个具体实现类建一个表
   特点:父类的属性被分配到每一个子类表中。
   优点:报表比较容易
   缺点:如果父类发生改变会引起所有子了表随之更改。
   并且不支持多态。数据有冗余。
3、所有的类在一张表中体现,加一个类型辨别字段
   特点:效率高,查询不方便,用于重复字段不多时。
   优点:支持多态,生成报表很简单。
   缺点:如果任何一个类发生变化,必须改表。字段多,难以维护。
(二)类关联关系对应表
1,一对一关联,类关系对应成表时有两种做法:
   一是引用主键,也就是一方引用另一方的主键既作为外键有作为自身的主键。
   二是外键引用,一方引用另一方的主键作为自身的外键,并且自己拥有主键。
2,一对多关联,也就是多端引用一端的主键当作外键,多端自身拥有主键。
3,多对多关系,多对多关系是通过中间表来实现的,中间表引用两表的主键当作联合主键,就可以实现多对多关联。
十二、JDBC2.0扩展
(一)JNDI(命名目录服务器):
定义:是Java的命名目录服务器。而JDBC是Java的数据库访问接口。
跟JDBC是平级的关系,是两个独立的JNDI;JDBC存储的数据都是以二维表的接口来大规模存储数据。而JNDI存储的是差异性比较大的Java对象。JDBC取数据时用Sql语言访问数据。JDBC API依赖于驱动程序,而JNDI依赖于服务提供者。JDBC一般把数据存储到关系型数据库,而JNDI一般把数据存储到小型数据库、文件、甚至是注册表中。JNDI相当于一个电话本。允许程序将一个对象和一个命名绑定到目录树上。
(JNDI的方法是在javax.naming包下,接口是Context实现类是InitialContext)
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(数据源)
定义:
1、包含了连接数据库所需的信息,可以通过数据源获得数据库连接,有时由于某些连接数据库的信息会变更,所以经常使用包含数据库连接信息的数据源。
2、一个标准的数据库连接工厂,作为DriverManager的替代项,保存与数据库相关的信息,可以将数据库的连接信息放在一个共享的空间进行提取,不用在本地安装。支持JNDI的绑定,支持连接池,支持分布式服务,用getConnection方法可获得与数据库的连接。数据源应该由管理员创建(目的是为了保证数据库的安全)。所以数据源对象一般放在JNDI服务器中。
通过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);//通过指定的字符串获得先前绑定的资源。
    }
(三)连接池:
在内存中用来保存一个个数据库连接的对象。
访问数据库时,建立连接和拆连接需要花费较长时间,通过以连接池直连的方式获取连接,不需要注册驱动程序,可以大量的节省销毁和创建连接的资源消耗提高访问数据库的效率。
注:通过连接池获得的Connection,当执行con.close()时,不是关闭连接,而是表示将连接释放回连接池。连接池是一个很复杂的软件,所以是由服务器厂商实现。
(四)分布式的事务管理器JTA
分布式事务是通过多个异地数据库执行一组相关的操作,要保证原子操作的不可分,也不用再自己写commit,和rollback,全部都交给中间服务器(TM)来处理。(两阶段提交),也 就是在中间服务器发送sql语句等待数据库回应,都回应操作成功才提交,否则同时回滚。
                               
                     con1 ------>TM(事务管理器)------>commit------>DB1
                                   commit
                     con2 ------>              ------>commit------>DB2

1、regester 
2、TMàexecute() 
3、commitàTM
4、TMàcommitàDB
(五)RowSet
行集,这是一个JavaBean(事件机制),它增强了ResultSet的功能,包装了Connection、Statement、ResultSet、DriverManage。通过RowSet可以获得数据源,设置隔离级别,也可以发送查寻语句,也实现了离线的操作遍历,RowSet也支持预编译的Statement。
RowSet中的方法大致上和ResultSet相同,当需要使用时请查阅JAVA API参考文档。
分享到:
评论

相关推荐

    JDBC学习笔记--JDBC学习笔记

    JDBC学习笔记 JDBC(Java DataBase Connectivity)是一种Java程序语言访问数据库的标准接口。它使得Java程序可以连接到各种不同的数据库管理系统,例如Oracle、SQL Server、MySQL、DB2、Sybase等。 JDBC的概念 ...

    jdbc 学习 笔记 代码例子1

    jdbc学习用笔记和代码例子jdbc学习用笔记和代码例子jdbc学习用笔记和代码例子

    jdbc学习笔记完美版

    JDBC的学习笔记涵盖了从基本概念到实际操作的各个方面,对于初学者来说是一份很好的参考资料。通过学习JDBC,开发者能够有效地在Java应用程序中集成数据库功能,实现数据的增删改查以及与存储过程的交互。理解和掌握...

    jdbc 学习 笔记 代码例子4

    jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子

    jdbc 学习 笔记 代码例子3

    jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子

    jdbc 学习 笔记 代码例子2

    jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子

    JDBC 学习笔记 JDBC 学习笔记

    **JDBC学习笔记** 在Java开发中,JDBC(Java Database Connectivity)是连接数据库的关键技术。它是Java API,允许Java程序与各种类型的数据库进行交互。本笔记将深入探讨JDBC的核心概念、工作原理以及实际应用。 ...

    JDBC学习笔记

    ### JDBC学习笔记知识点详解 #### 一、JDBC理论概述 **JDBC**(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供...

    jdbc学习笔记(PDF格式)

    ### JDBC学习笔记知识点详解 #### 一、JDBC原理概述 **JDBC**(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC...

    达内jdbc学习笔记

    总的来说,"达内jdbc学习笔记"涵盖了JDBC基础、数据库连接、SQL执行、结果集处理、事务管理和性能优化等多个关键知识点,对Java开发者来说是宝贵的参考资料。通过深入学习和实践,可以熟练地使用Java进行数据库操作...

    JDBC学习笔记总结,可以看看

    "JDBC学习笔记总结" JDBC(Java Database Connectivity)是一种Java API,用于连接和操作关系数据库。下面是JDBC学习笔记的总结: 连接到数据库的方法 1. ODBC(Open Database Connectivity):是一个以C语言为...

    JDBC笔记_JDBC学习笔记_

    在本篇JDBC学习笔记中,我们将深入探讨JDBC的基础知识、核心概念以及实际应用。 一、JDBC基础 1. JDBC驱动程序:JDBC驱动是连接Java应用程序和数据库之间的桥梁。根据实现方式,JDBC驱动分为四种类型:类型1(JDBC...

    JDBC学习笔记.txt

    JDBC学习笔记.txt

    JDBC 学习笔记+代码整理

    JDBC 学习笔记+代码整理

    JSP JDBC 学习笔记(基础)

    本学习笔记将深入探讨这两个技术的基础知识,以帮助初学者掌握它们的基本概念和应用。** ### JSP基础 1. **JSP概述**:JSP是一种基于Java的技术,它允许在服务器端生成HTML,使得开发者可以在网页中嵌入Java代码,...

    JDBC学习笔记(笔记+包含详细注释的代码)

    **JDBC学习笔记** Java Database Connectivity (JDBC) 是Java平台中用于与各种数据库进行交互的一组接口和类。它是Java SE的一部分,允许Java应用程序连接到数据库,执行SQL语句,处理结果集,并进行事务管理。这篇...

    jdbc学习笔记

    jdbc学习笔记的使用,和笔记的概述,与主要关键字的使用和使用

    JDBC学习笔记(精华版)-1

    本篇JDBC学习笔记将深入探讨JDBC的核心概念、操作步骤以及最佳实践。 **一、JDBC基本概念** 1. **驱动程序**:JDBC驱动程序是Java应用程序与数据库之间的桥梁,分为四种类型:JDBC-ODBC桥接驱动、本地API驱动、...

    传智播客视频Jdbc学习笔记

    ### 传智播客JDBC学习笔记精要 #### JDBC简述与连接 JDBC(Java Database Connectivity)是Java中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。在传智播客的JDBC...

Global site tag (gtag.js) - Google Analytics