我想大家都知道ODBC是什么?ODBC(OpenDatabaseConnectivity,开放数据库互连)是微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。其实他们都是一样的,为连接数据库提供一组API!
理解JDBC
提供了统一方式访问数据库的API,提供独立于平台的数据库访问,对专有的数据库问题的是透明的。
JDBC驱动程序
我们来看一个图,JAVA引用程序是通过驱动呢来和数据库进行连接的!连接不同的数据库加载不同的驱动!
例如我们连接sql server 数据库,那么我们就要加载sql server 驱动,首先要从网上下载相应的驱动包sqljdbc_4.0.2206.100_chs.tar如果你的数据库是sql server 2008以后版本的, 那么就可以用这个一个(sqljdbc4.jar)就可以了,当然如果是以前的,你可以查一下我没研究过,但我想说(你真执着!)。
看一下用Eclipse 连接sql server 数据库的用法!有图有真相!
首先打开Eclipse后,随便的简历一个java 项目,然后随便的建一个包,包下边在创建一个类!
然后右键单击项目名,选择Build Path 然后在选择Configure Build Path….
然后选择上边的Libraries,单击Add External JARs…. 然后找到你从网上下载好的sqljdbc4.jar文件, 一定要下载好正确的文件,否则你会很后悔!所以建议你从这里下载(标准的sqljdbc4.jar)!
确定好有sqljdbc.jar文件以后(一定要看好后缀名),就可以单击OK了。
然后如图所示,当写代码的时候的驱动的路径就放在java.sql.Driver文件中,到时候为了防止写错,可以来这里粘贴!而他真实使用的驱动类就放在com.microsoft.sqlserver.jdbc的包中,想看一下直接进去找,里边类有很多,具体什么作用直接去网上查就可以了!
然后就可以进行编码了,编码前首先要引入几个文件,java.sql.Connection; java.sql.DriverManager; java.sql.PreparedStatement; java.sql.ResultSet;在程序中就可以直接使用这几个类了!
<span style="font-size:18px;">package com.tgb; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class jdbcConn { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub jdbcConn.test(); } public static void test() throws Exception{ Connection conn = null; PreparedStatement ps=null; ResultSet rs= null; try { //定义驱动的路径,该路径在services下的java.sql.Driver中。 String driverPath="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载驱动 Class.forName(driverPath); //是从当前JVM的加载器(可能多个)中选取适合的数据库驱动并获得连接 conn=DriverManager .getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=DB_ChargeSystem","sa","123456"); //SQL语句 String sql = "select * from T_UserInfo"; //向已经连接的数据库中发送sql语句,该sql语句在PreparedStatement对象中已经惊醒了编译! ps = conn.prepareStatement(sql); //返回sql语句的执行结果! rs = ps.executeQuery(); //对结果进行操作,现将他打印出来, 在实际中进行更复杂的操作! while (rs.next()) { System.out.println(rs.getString(1)); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ //关闭所有打开的连接, try { rs.close(); } catch (Exception e2) { // TODO: handle exception e2.printStackTrace(); }finally{ try { ps.close(); } catch (Exception e3) { // TODO: handle exception e3.printStackTrace(); }finally{ conn.close(); } } } } }</span>
这个只是一个简单的实例,在实际的应用中我们还要好好的对这个方法进行进一步的封装!然后就可以代码简化很多!
上边的实例为sql server数据库的连接,其实其他数据库的连接跟这个本质上是一样的。尽管JDBC在JAVA语言层面实现了统一,但不同数据库仍旧有许多差异。为了更好地实现跨数据库操作,于是诞生了Hibernate目,Hibernate是对JDBC的再封装,实现了对数据库操作更宽泛的统一和更好的可移植性。
期待进一步的学习!