JDBC设计
JDBC是由Sun公司发布的,经过多次迭代更新后形成的数据库连接API,它使编程人员可以通过这个API接口连接到数据库。它是Java类库中最常使用的API之一。
那么JDBC设计时,采用了和ODBC(微软为C语言访问数据库提供了一套编程接口)一样的思想:根据API编写的程序都可以与驱动管理器进行通信,而驱动管理器则通过驱动程序与实际的数据库进行通信。
JDBC最终设计目标:
- 通过使用标准的SQL语句,甚至是专门的SQL扩展,程序员就可以利用Java语言开发访问数据库的应用,同时还依旧遵循Java语言的相关约定。
- 数据库供应商喝数据库工具开发商可以提供底层的驱动程序。因此,他们可以优化各自数据库产品的驱动程序。
很多人认为JDBC其实就是Java Database Connevtivity的缩写,究竟是不是这样呢?
答:其实不完全是这样的,根据Oracle(收购了Sun公司)声明,JDBC是一个注册了商标的术语,而并非Java Database Connevtivity的首字母缩写。它的命名体现了对ODBC的致敬。
那么也许有的读者会问了,为什么Java没有采用ODBC模型呢?下面给出答案
- ODBC很难学会。
- ODBC中有几个命令需要配置很多复杂的选项,而在Java编程语言中所采用的风格是要让方法简单而直观,但数量巨大。
- ODBC依赖于void*指针和其他C语言特性,而这些特性Java编程语言并不具备。
- 与纯Java的解决方案相比,基于ODBC的解决方案天生就缺乏安全性,且难于部署。
JDBC典型用法:
客户端和中间层之间的通信在典型情况下是通过HTTP来实现的。JDBC管理着中间层和后台数据库之间的通信。
JDBC配置
数据库的URL(给个实例)
jdbc:mysql://127.0.0.1:3306/JDBC_test?characterEncoding=UTF-8
这里用的是MySQL数据库,127.0.0.1是本机IP,也可用localhost代替,JDBC_test是我预先建立的数据库的名字,字符集UTF-8
驱动程序的JAR文件
建议读者去Maven中央仓库下载,根据自己数据库的版本进行下载,笔者这里只提供MySQL的jar包下载地址啦——点击这里!
注册驱动器类
通过使用DriverManager,可以用两种方式来注册驱动器。笔者在此提供提供一种方法:在Java程序中加载驱动类
Class.forName("com.mysql.jdbc.Driver");
这条语句使得驱动器类被加载,由此将执行可以注册驱动器的静态初始化器。
JDBC配置具体实现代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class GetConnection {
public static void main(String[] args){
try {
Class.forName("com.mysql.jdbc.Driver");
//建立与数据库连接
// 这里需要提供:
// 数据库所处于的ip:127.0.0.1 (本机)
// 数据库的端口号: 3306 (mysql专用端口号)
// 数据库名称 JDBC_test
// 编码方式 UTF-8
// 账号 root
// 密码 root
Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/JDBC_test?characterEncoding=UTF-8","root","root");
System.out.println("连接成功:" + connection);
}catch (ClassNotFoundException | SQLException e){
e.printStackTrace();
}
}
}
API文档:java.sql.DriverManger中的getConnection()
作用是:建立一个指定到数据库的连接,并返回一个Connection对象