在相识JDBC之前呢,我们可以先对ODBC做一个回首,以便于更好的领略JDBC。看名字也知道这两个干系纷歧般,他们实现了同样的成果,为应用措施毗连和操纵数据库提供支持。所以,我们先从ODBC开始。
ODBC
ODBC(Open Database Connectivity)是开放数据库互连的简称,是一种利用SQL的应用措施接口。它是一系列的类型和对数据库会见的API。那么API+SQL就可以执行对数据库的操纵。它是不依赖于DBMS的,即通过ODBC可以以沟通的方法毗连大部门数据库。它包罗了应用措施接口、驱动器打点器、数据库驱动器、数据源。下面我们通过一副图来相识ODBC各个部门之间的干系:
JDBC
之前说过了JDBC和ODBC实际上的成果是一致的,只不外实现不太一样。首先ODBC是基于C++语言的,那么与Java的面向工具思想不太相符,通信较量坚苦。因此,JDBC就出项了,即JDBC是基于JAVA语言的数据库会见API接口。然后其他内容就和ODBC根基一致了。只要你相识了ODBC,那么在观念上根基就领略了JDBC。那么你需要做的就是对新面目出项的接口再相识一遍就好了,而且这些接口的成果和ODBC是一致的,只是说在实现上有细微的不同。下面也看看JDBC的布局图:
毗连方法
由上面的布局图可以看出来,JDBC提供了多种差异的毗连方法。这个做个或许的相识吧,因为这主要是数据库厂商体贴的事,我们知道就好了,有些也确实不是很大白。
1、JDBC-ODBC毗连桥:这种方法是一位ODBC为基本的,上面说了java应用措施和ODBC之间的通信是有点贫苦的。可是ODBC作为一种数据库会见的尺度应用是很广的。因此JDBC通过映射ODBC的成果挪用就担保了本来利用ODBC的数据库也可以很利便的会见的。
2、当地API驱动:即把JDBC挪用转换为对数据库接口的客户端二进制代码库的挪用。可是这个接口库依赖于产商,因为这里我们挪用的不是数据库厂商提供的JDBC的接话柄现。
3、纯Java当地协议:即把JDBC挪用映射为DBMS的网络监听协议的成果挪用,监听措施监听到请求后执行相关的数据库操纵。监听措施是由厂商提供的。
常用接口简介
DriverManager
关于驱动措施如何注册的,我们不需要知道。我们需要知道的是,如何挪用要领去加载获得数据库驱动措施就好了。即Class.forName()要领,挪用这个要领需要通报一个包括该驱动措施类名的String工具作为实参。如下:
Class.forName("oracle.jdbc.driver.OracleDriver")
Connection 加载了驱动措施后,与数据库成立毗连需要挪用DriverManager.getConnection()要领,此要领需要数据库URL作为参数,差异的数据库URL的有些区别,但都切合“协议名 + Ip地点+端标语+数据库名”的名目。数据库用户名和暗码假如有,也得加上,如下:
String url = "jdbc:oracle:thin:@localhost:1521:pdborcl"; String username = "123"; String password = "123"; Connection conn = DriverManager.getConnection(url, username, password);
StateMent 执行静态的SQL语句,它还可以组合多个SQL语句成为一个批处理惩罚,整体提交给数据库。我们通过Connection工具来建设Statement工具,然后用Statement的execute要领来执行SQL。别的PreparedStatement工具是担任自Statement工具的,这里我们用 PreparedStatement为例,需要留意的是批处理惩罚只能用Statement工具来执行。
PreparedStatement pstmt = conn.prepareStatement("select * from t_user where userId=?"); pstmt.setInt(1, id); ResultSet rs = pstmt.executeQuery();
ResultSet 执行一个SQL查询之后的功效集,Result具有指向当前行的指针,可以用来读取功效会合的数据。初始时指针指向第一行前面。该工具的Next()要领可以移动指针。假如Next()之后的行正当返回True,不然False。因此,轮回时Next()要领作为判定依据。
到这里JDBC的简朴先容就竣事了,JDBC在利用中充当了一个相同者的脚色。这让我想起姚明在NBA打球的谁人设计模式:适配器模式,这也就成绩了 Java应用措施跨平台的特性。同时,JDBC、ODBC等也是面向接口编程思想的典范浮现。 对了,这里还缺了一个OLE DB,没有提及。下回吧…
作者:csdn博客 zhuojiajin