JDBC驱动

关于JDBC驱动

获取JDBC驱动的Jar包

​ 需要到各个数据库厂商的官网下载

markdown

​ 在百度中搜索你需要连接的数据库厂商名 + driver 如:jdbc driver, 进入指定的官网中下载对应版本的驱动

创建数据库连接代码示例

			Class.forName("com.mysql.cj.jdbc.Driver");//1.加载初始化JDBC驱动类
			String url = "jdbc:mysql://localhost:3306/imooc";//数据库连接字符串
            String username = "root";//数据库用户名
            String password = "root";//数据库密码
            Connection conn = DriverManager.getConnection(url, username, password);//2.创建数据库连接

细节说明:

Class.forName的作用:

  1. Class.forName用于指定加载指定的JDBC驱动类
  2. Class.forName本质是通知JDBC注册这个驱动类
  3. 驱动由数据库厂商自行开发,连接字符串也不同

数据库连接字符串

​ 常见的数据库厂商规定的连接字符串

数据库JDBC驱动类连接字符串
MySQL 5com.mysql.jdbc.Driverjdbc:mysql://主机ip:端口/数据库名
MySQL 8com.mysql.cj.jdbc.Driverjdbc:mysql://主机ip:端口/数据库名
Oracleoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@主机ip:端口:数据库名
SQLServercom.mircosoft.sqlserver.jdbc.SQLServerDriverjdbc:mircosoft:sqlserver:主机ip:端口;database=数据库名

​ MySQL连接字符串

  • 格式: jdbc:mysql://[主机ip]:[端口]/数据库名?参数列表
  • 主机ip与端口是可选设置,默认值为127.0.0.1与3306
  • 参数列表采用url编码,格式:参数1=值1&参数值2=值2&…

​ MySQL连接字符串的参数

参数名建议参数值说明
useSSLtrue(生产)/false(开发)是否禁用,SSL代表安全套接层(作用是在网络传输过程中使用非对称加密的方式对数据加密传输)
useUnicodetrue启用unicode编码传输数据
characterEncodingUTF-8使用UTF-8编码传输数据
serverTimezoneAsia/Shanghai使用东8时区时间,UTF+8
allowPublicKeyRetrievaltrue允许从客户端获取公钥加密传输

DriverManager对象

  • DriverManager用于注册/管理JDBC驱动程序
  • DriverManager.getConnection(连接字符串, 用户名, 密码)
  • 返回Connection对象,对应数据库的物理网络连接

Connection对象

  • Connection对象用于JDBC与数据库的网络通信对象
  • java.sql.Connection是一个接口,具体由驱动厂商实现
  • 所有数据库的操作都建立在Connection基础上

完整代码:

package com.imooc.jdbc.sample;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * @author CubeMonkey
 * @create 2020-09-29 19:57
 */
public class ConnectionSample {
    public static void main(String[] args) {
        Connection conn = null;
        try {
            String url = "jdbc:mysql://localhost:3306/imooc?" +
                    "useSSL=false&useUnicode=true&characterEncoding=UTF-8&" +
                    "serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";//数据库连接字符串
            String username = "root";//数据库用户名
            String password = "root";//数据库密码

            Class.forName("com.mysql.cj.jdbc.Driver");//加载初始化JDBC驱动类
            conn = DriverManager.getConnection(url, username, password);//创建数据库连接

            System.out.println(conn);
        } catch (ClassNotFoundException e) {//通常是因为没有在当前工程中引入jdbc驱动包
            e.printStackTrace();
        } catch (SQLException e) {//与数据库有关的异常
            e.printStackTrace();
        } finally {
            if (conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }

        }
    }
}
	
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rex·Lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值