JDBC核心基础——获取数据库连接的五种方式

I:使用第三方提供的API实例化Driver的实现类(进阶一)
Driver driver = new com.mysql.jdbc.Driver();
String url = "jdbc:mysql://localhost:3306/test";
Properties info = new Properties();
info.setProperty("user", "root");
info.setProperty("password", "123");
Connection conn = driver.connect(url, info);
System.out.println(conn);
II:使用Sun公司提供的API实例化Driver的实现类(进阶二)
Class<?> clazz = Class.forName("com.mysql.jdbc.Driver");
Driver driver = (Driver) clazz.newInstance();
String url = "jdbc:mysql://localhost:3306/test";
Properties info = new Properties();
info.setProperty("user", "root");
info.setProperty("password", "123");
Connection conn = driver.connect(url, info);
System.out.println(conn);
III:使用DriverManager实现类替换Driver的实现类(进阶三)
Class<?> clazz = Class.forName("com.mysql.jdbc.Driver");
Driver driver = (Driver) clazz.newInstance();
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123";
DriverManager.registerDriver(driver);
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(conn);
IV:使用DriverManager实现类优化上述连接的操作(进阶四)
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123";
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(conn);
V:将四个连接的基本信息声明在src目录下的配置文件中(最终版)
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
Properties pros = new Properties();
pros.load(is);
String user = pros.getProperty("user");
String password = pros.getProperty("password");
String url = pros.getProperty("url");
String driverClass = pros.getProperty("driverClass");
Class.forName(driverClass);
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(conn);
备注:JDBC的获取连接的小结:
  1. 进阶四省略了注册驱动的操作,这是因为在MySQL的Driver实现类中,声明了如下的操作:
static{
    try{
        java.sql.DriverManager.registerDriver(new Driver());
    }catch(SQLException e){
        throw new RuntimeException("Can't register driver!");
    }
}
  1. 最终版的好处:
    1. 实现了数据与代码的分离,实现了解耦
    2. 可以直接修改配置文件的信息,可以避免程序重新打包
  2. 关于 Driver 接口:
    1. java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口,这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现
    2. 不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类 java.sql.DriverManager 去调用这些 Driver 实现类的结构
    3. Oracle 的驱动:oracle.jdbc.driver.OracleDriver
    4. MySQL 的驱动:com.mysql.jdbc.Driver
  3. JDBC 的 URL 标准由 jdbc:子协议:子名称 三部分组成:
    1. 协议:JDBC URL 中的协议总是 jdbc
    2. 子协议:子协议用于标识一个数据库驱动程序
    3. 子名称:一种标识数据库的方法,子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息
  4. 几种常用的 JDBC URL 数据库:
    1. Oracle 的连接:jdbc:oracle:thin:@localhost:1521:atguigu
    2. SQLServer 的连接:jdbc:microsoft:sqlserver//localhost:1433;DatabaseName=sid
    3. MySQL 的连接:jdbc:mysql://localhost:3306/atguigu
  5. MySQL 8.0 以上的驱动连接的配置参数变化:
    1. driverClass:com.mysql.cj.jdbc.Driver
    2. url:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&rewriteBatchedStatements=true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值