https://blog.csdn.net/kanglix1an/article/details/36893005 css
什么是JDBC?html
Java语言訪问数据库的一种规范,是一套API。JDBC(Java Database Connectivity)API。即Java数据库编程接口。是一组标准的Java语言中的接口和类。使用这些接口和类,Javaclient程序可以訪问各类不一样类型的数据库。比方创建数据库链接、运行SQL语句进行数据的存取操做。java
JDBC规范採用接口和实现分离的思想设计了Java数据库编程的框架。 为了使client程序独立于特定的数据库驱动程序,JDBC规范建议开发人员使用基于接口的编程方式。sql
什么是JDBC驱动程序?数据库
是各个数据库厂家依据JDBC的规范制做的JDBC实现类。编程
JDBC驱动程序的四种类型:oracle
1.第一种类型的驱动程序的实现是经过将JDBC的调用全部托付给其余编程接口来实现的,比方ODBC。这样的类型的驱动程序需要安装本地代码库,即依赖于本地的程序。因此便携性较差。比方JDBC-ODBC桥驱动程序框架
2. 另一种类型的驱动程序的实现是部分基于Java语言的。即该驱动程序一部分是用Java语言编写,其余部分托付本地的数据库的client代码来实现。工具
同类型1的驱动同样,该类型的驱动程序也依赖本地的程序,因此便携性较差post
3. 第三种类型的驱动程序的实现是全部基于JAVA语言的。该类型的驱动程序一般由某个中间件server提供,这样client程序可以使用数据库无关的协议和中间件server进行通讯,中间件server再将client的JDBC调用转发给数据库进行处理
4.第四种类型的驱动程序的实现是全部基于JAVA语言的。该类型的驱动程序中包括了特定数据库的訪问协议。使得client可以直接和数据库进行通讯
JAVA使用JDBC訪问数据库的步骤(与ODBC使用基本类似):
1.获得数据库驱动程序
2.建立数据库链接
3. 运行SQL语句
4.获得结果集
5.对结果集作相应的处理(增,删,改,查)
6.关闭资源:这里释放的是DB中的资源
PS:Oracle链接字符串的书写格式:“oracle:jdbc:thin:@ip:1521: 数据库名”,”数据库username”,”数据库password”
简单的样例:
public void TestJdbc() { String sql = "select * from test_user"; Connection con = null; Statement st = null; ResultSet rs = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); con = DriverManager.getConnection( "jdbc:oracle:thin:@127.0.0.1:1521:name", "root", "123456"); st = con.createStatement(); rs = st.executeQuery(sql); while (rs.next()) { System.out.println(rs.getInt("id")); System.out.println(rs.getString("name")); } } catch (Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch (Exception e) { } try { st.close(); } catch (Exception e) { } try { rs.close(); } catch (Exception e) { } } }
与ODBC比較:
JDBC和ODBC事实上都是用来链接数据库的驱动程序。ODBC中文名字叫作开放数据库互联,是微软技术人员开发的开放服务结构中有关数据库的一个组成部分,它创建一组相关的规范。并提供了一组对数据库訪问的标准应用程序编程接口。
简单的说,ODBC就是应用程序与数据库系统进行交互的工具。全部的数据库操做由相应的数据库系统的ODBC驱动程序来完毕。从而可以实现以同一的方式来处理全部的数据库。
JDBC与ODBC类似,也是一个应用程序与数据库进行通讯的中介。仅仅是他们的开发商不一样而已。JDBC是由Sun公司向关系型数据库系统厂商提供JDBC的规格与需求;而后各大厂商遵循标准规格设计出符合本身数据库产品的JDBC驱动程序。
JDBC的总体结构类似于ODBC,有四个组件:应用程序、驱动程序管理器、驱动程序和数据源,工做原理亦大致同于ODBC.
差异:
1.JDBC要比ODBCeasy理解。
2.JDBC数据库驱动程序是面向对象的。
3.JDBC的移植性要比ODBC要好
总之JDBC与ODBC都是数据库的驱动程序,它们的本质是一样的,都是为了处理SQL语句而设计的。而且JDBC在设计的时候。其也是在ODBC的基础上进行设计的,并保留了ODBC数据库驱动程序的部分功能。或者说,咱们可以把JDBC看做是ODBC的还有一个高级版本号也何尝不可。
JDBC主要在操做上、友好性上作了必定的改进。