JAVA之数据库JDBC学习心得

来源:互联网 发布:知乎异性喜欢香水 编辑:程序博客网 时间:2024/05/16 05:33

JAVA之数据库JDBC学习心得

JDBC驱动的背景

      设计之初,JAVA的设计人员希望采用纯JAVA即可实现与所有的数据库进行通信,但是后来证明这是无法实现的,因为不同的数据库厂商有不同的传输协议,java无法满足同时实现所有的协议,并且当数据库厂商对协议一旦有更改,java则会随着更改。因此java的开发人员和数据库厂商的人员都希望java提供一套统一的API,可以访问任何数据库,同时提供一个数据库连接管理器,以便不同的数据库厂商可以将自己的数据库连接器加入其中,这样对于开发人员来说,只需要关心,上层访问数据库的API,无需关心底层如何和数据库通信,而数据库厂商则只需要实现自己数据库连接器的协议的通信即可,这里就产生了两套API,一套是给开发人员调用的,像我们平时使用的Connection,STatement这些属于开发人员使用的API,这些API对底层数据库是透明的。还有一套API则是由数据库开发商实现的,实现之后也就是我们现在的JDBC驱动程序,像MYSQL的Connector/J,oracle公司的ojdbc14.jar等。java的驱动管理器和这些驱动程序通信,这些具体的驱动程序则和数据库进行通信。

JDBC驱动程序的几种类型

1.JDBC/ODBC 类型,这种最典型的就是sqlserver的JDBC驱动程序包,开发过的人都知道里面有一个关于odbc的jar包,采用的就是JDBC/ODBC这种方式实现的

2.是由JAVA和部分本地代码组成的,很少见过

3.驱动程序由纯java客户端类库,他使用一种与具体数据库无关的协议将数据库请求发送至服务器构建,然后由构建将数据库请求翻译成特定的数据库类型,这种有点类似hibernate的SQLDialect(SQL方言)

4.驱动类是纯JAVA类库,直接将sql请求翻译成特定的数据库协议,如:connector/J

 

数据库中的常用类

Connection :该类由DriverManager产生,DriverManager首先加载数据库驱动程序,比如:com.mysql.jdbc.Driver ,这里可以采用:Class.forName("com.mysql.jdbc.Driver");将该驱动程序注册到驱动管理器中,也可以采用:System.setPropertity("jdbc.driver","com.mysql.jdbc.Driver"), 然后驱动管理器通过 Connection con = DriverManager.getConnection(url,username,password);获取到一个数据库的连接,有了这个连接,则就可以根据这个连接创建出操作数据库的Statement了.

一个Connection可以创建一个或者多个Statement对象,但是一个Statement只能大家一个resultSet,且不同的数据库驱动程序对同一个Connection激活的Statement是不一样的,可以通过DataBaseMata类的getMaxStatements获取支持的活动Statement个数。

 

 

 

 

 

 

 

0 0
原创粉丝点击