黑马程序员技术交流社区

标题: JAVA之数据库JDBC学习心得 [打印本页]

作者: 林琪feng    时间: 2019-4-27 19:38
标题: 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个数。
-
作者: 时光未桀    时间: 2019-4-29 14:43

作者: 白龙马有点黑    时间: 2019-5-6 20:23
故天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。
作者: 唐雨忆    时间: 2019-5-6 20:38
在醒着的时间里,追求你认为最有意义的。
作者: 雨后那道光    时间: 2019-5-8 11:43

财富是一时的朋友,而朋友才是永久的财富;荣誉是一时的荣耀,做人才是永久的根本;学历是一时的知识,学习才是永久的智慧!
作者: 小逗比    时间: 2019-5-8 11:59
你有多努力,就有多特殊。人只有坚持把自己变好,就真的会越来越好。
作者: 一只小熊猫    时间: 2019-5-8 12:47

昨天是一张作废的支票,明天是一张期票,而今天则是唯一拥有的现金。
作者: yuanfang123    时间: 2019-5-8 13:23

并不是因为肩上的包袱太重,而让我们扛不住;而是我们太在意别人的看法,而失去了继续扛下去的勇气。
作者: 188杨    时间: 2019-5-8 16:36
奋斗不一定能带来成功,但是一定能带来成长。
作者: 似岁年华    时间: 2019-5-8 19:25
%A发光并非太阳的专利,你也可以发光。%A加油
作者: 别说话,吻我    时间: 2019-5-8 19:35
一个人几乎可以在任何他怀有无限热忱的事情上成功。愿你早日达成目标
作者: 疯狂的小鸡    时间: 2019-5-8 20:06

不论你在什麽时候开始,重要的是开始之後就不要停止。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2