关于JDBC的那些事(一)

JDBC那些事(一)

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对象

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值