前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JDBC 通过DriverManager接口获取数据库连接(2)

JDBC 通过DriverManager接口获取数据库连接(2)

作者头像
桑鱼
发布2020-03-17 15:13:51
8760
发布2020-03-17 15:13:51
举报
文章被收录于专栏:学习笔记持续记录中...

JDBC接口(API)

  • 提供了一套纯粹的JAVA API给应用程序开发者
  • 提供了一套低级别的JDBC driver API给数据库驱动开发者

应用程序开发者借助于API用于开发可以访问数据库的程序; 驱动开发者借助于API提供服务到JDBC

提供给数据库驱动开发者的API则正好是为了实现提供给应用程序开发者的这套API,这句话有些令人迷惑

JDBC是对数据库操作访问的薄层封装,应用程序开发者借助于JDBC可以实现对数据库的操作访问,但是,最终提供的服务仍旧是具体的数据库实现了具体SQL的执行 所以JDBC提供给应用程序开发者的API就是开发者使用JDBC数据库的接口而提供给数据库驱动开发者的API则恰恰是为了让数据库驱动开发者来提供服务

通过DriverManager类的getConnection()方法建立数据库连接

代码语言:javascript
复制
public Connection myTest01() throws Exception{
    // 1.准备连接数据库的4个字符串
    // 驱动的全类名
    String driverClass = null;
    // JDBC URL
    String jdbcUrl = null;
    // user
    String user = null;
    // password
    String password = null;
    // 读取类路径下的jdbc.properties 文件
    InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties");
    Properties properties = new Properties();
    properties.load(in);
    driverClass = properties.getProperty("driver");
    jdbcUrl = properties.getProperty("jdbcUrl");
    user = properties.getProperty("user");
    password = properties.getProperty("password");
    // 2. 加载数据库驱动程序
    Class.forName(driverClass);
    // 3. 通过DriverManager 的getConnection()方法获取数据库连接
    Connection connection = DriverManager.getConnection(jdbcUrl,user,password);
    return connection;
}
代码语言:javascript
复制
// 注册驱动的两种写法
DriverManager.registerDriver(Class.forName(driverClass).newInstance) // 第一种写法
Class.forName(driverClass); // 第二种写法
// 支持第二种写法的原因是 在加载驱动的时,com.mysql.cj.jdbc.Driver中有静态代码块会被执行,静态代码块创建了当前类的实例,注册到了DriverManager,所以可以直接用第二种写法
// 以下源码
public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    public Driver() throws SQLException {
    }
    static {
        try {
            DriverManager.registerDriver(new Driver());
        } catch (SQLException var1) {
            throw new RuntimeException("Can't register driver!");
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档