JAVA之数据库JDBC学习心得
2014-07-06 20:05
148 查看
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个数。
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个数。
相关文章推荐
- jdbc心得-2-数据库与java相结合
- java_web学习第九天(JDBC数据库驱动------基础知识)
- 即将我就不再学习Java课程,在这最后之际,分享一下我jdbc连接数据库的看法
- JDBC连接数据库学习心得
- JDBC(1)JAVA连接数据库之 基础知识学习
- jdbc心得-2-数据库与java相结合
- Java学习(十四):JDBC方式连接数据库举例
- java学习--数据库编程(JDBC基础概念)
- java学习心得——navicat数据库的使用
- Java -- JDBC 学习--获取数据库链接
- Java学习历程(数据库与JDBC)
- JAVA学习笔记4——JDBC方式连接数据库
- java_web学习第十一天(jdbc数据库驱动------数据库连接池)
- 【Java学习-J.160430.0.15】笔记8-使用JDBC连接数据库
- java学习心得——mybatis配置替换jdbc代码
- Java学习笔记——JDBC之与数据库MySQL的连接以及增删改查等操作
- javaweb--jdbc--数据库操作学习笔记
- Java学习笔记--JDBC数据库的使用
- Spring学习心得(22)-- spring声明式事务处理(使用jdbc操作数据库)
- JAVA 学习日记(5).JSP,JDBC数据库查询