JDBC 基础知识(一) + 各种数据库连接

JDBC 就是 Java 平台上和数据库进行连接的“工具”。

首先来回顾一下“接口”:从下向上,接口是对“案例”的抽象,由一个案例抽象出一些规则。反过来,从上向下,被抽象出来的接口是对案例的一种承诺和约束。

也就是说,只要你实现我规定的接口,你的类就已经具有了接口对外承诺的方法,只要“客户”会操作接口,不需要重新学习就会操作实现了该接口的新类。用一位高手的话总结就是:
1.通过接口可以实现不相关的类的相同行为。
2.通过接口可以指明多个类需要实现的方法。
3.通过接口可以了解对象的交互方法而不需要了解对象所对应的类蓝本。

搞懂了以上这东西,JDBC,就好明白了。为了通用,Java 中要求有一种机制,在操作不同厂商数据库时有相同的方法去操作,而不是每接触一种数据库就要学习新的方法,完成这种机制的东西就叫 JDBC 了。

简单的分,JDBC 有两部分组成:JDBC API 和 JDBC Driver Interface。

JDBC API 就是提供给“客户”(就是像你我这种菜鸟级程序员来用的,如果是高手都自己写 JDBC 了,
哈哈) 的一组独立于数据库的 API,对任何数据库的操作,都可以用这组 API 来进行,那么要把这些通用的 API 翻译成特定数据库能懂的“指令”,就要由 JDBC Driver Interface 来实现了,所以这部份是面向 JDBC 驱动程序开发商的编程接口,它会把我们通过 JDBC API 发给数据库的通用指令翻译给他们自己的数据库。

因为 JDBC API 是通用接口,那么程序是如何知道我要连接的是哪种数据库呢?所以在和数据库连接时先要加载 (或称注册) 可用的 Driver,其实就是 JDBC 签名。加载驱动程序有很多方法,最常用的就是先把驱动程序类溶解到内存中,作为“当前”驱动程序。注意“当前”是说内存中可以有多个驱动程序,但只有现在加载的这个作为首选连接的驱动程序。

Class.forName("org.gjt.mm.mysql.Driver");

Class.forName 方法是先在内存中溶解签名为 org.gjt.mm.mysql.Driver 的 Driver 类,Driver 类就会把相应的实现类对应到 JDBC API 的接口中。比如把 org.gjt.mm.mysql.Connection 的实例对象赋给 java.sql.Connection 接口句柄,以便“客户”能通过操作 java.sql.Connection 句柄来调用实际的 org.gjt.mm.mysql.Connection 中的方法。至于它们是如果映射的,这是厂商关注的,“客户”只要调用 Class.forName("org.gjt.mm.mysql.Driver"); 方法就可以顺利的操作 JDBC API 了。

一个普通数据库的连接过程为:
1.加载驱动程序。
2.通过 DriverManager 到得一个与数据库连接的句柄。
3.通过连接句柄绑定要执行的语句。
4.接收执行结果。
5.可选的对结果的处理。
6.必要的关闭和数据库的连接。

MySQL 数据库连接:

String url  =   " jdbc:mysql://127.0.0.1:3306/xxx " ;
Class.forName(
" org.gjt.mm.mysql.Driver " );
Connection conn 
=  DriverManager.getConnection(url,  " user " " password " );
注意:MySQL for JDBC 的版本必须符合当前使用的 MySQL 数据库版本。

Access 数据库连接:

String url  =   " jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=data/xxx.mdb " ;
Class.forName(
" sun.jdbc.odbc.JdbcOdbcDriver " );
Connection conn 
=  DriverManager.getConnection(url,  " user " " password " );
注意:DBQ 的相对路径是相对于工程根目录的,并且要用“//”;Driver (*.mdb) 中间的空格一定不要省。

SQLServer2000 数据库连接:

String url  =   " jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=xxx " ;
Class.forName(
" com.microsoft.jdbc.sqlserver.SQLServerDriver " );
Connection conn 
=  DriverManager.getConnection(url,  " user " " password " );
注意:JDBC 连 SQL2000 必须导入 Microsoft SQL Server 2000 Driver for JDBC 里的三个 jar 包。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值