当前位置: 首页 > news >正文

JDBC注册驱动及获取连接

文章目录

  • 1. JDBC注册驱动
    • 1.1 导入驱动 Jar 包
    • 1.2 注册驱动
      • 1.2.1 API介绍
      • 1.2.2 使用步骤
      • 1.2.3 案例代码
  • 2. 获取连接
    • 2.1 API介绍
    • 2.2 参数说明
    • 2.3 注意事项
    • 2.4 使用步骤
    • 3.5 案例代码

在这里插入图片描述


1. JDBC注册驱动

Connection表示Java程序与数据库之间的连接,只有拿到Connection才能操作数

1.1 导入驱动 Jar 包

导入连接 MySQL 所需要的jar包.

1.2 注册驱动

我们Java程序需要通过数据库驱动才能连接到数据库,因此需要注册驱动。
MySQL的驱动的入口类是:com.mysql.jdbc.Driver

1.2.1 API介绍

java.sql.DriverManager 类用于注册驱动。提供如下方法注册驱动

static void registerDriver(Driver driver)DriverManager 注册给定驱动程序。 

说明:

​ 1)执行完上述语句之后,DriverManager 就可以管理 mysql 驱动了。

​ 2)当前的 DriverManager.registerDriver(Driver driver); 方法的参数是 Driver,这是 jdbc 的一个接口,所以我们需要给定实现该接口的实现类。如果我们连接的是 mysql 数据库,那么需要导入 mysql 数据库提供的包,也就是com.mysql.jdbc.Driver; 下的Driver类。如果我们连接的是oracle数据库,那么需要导入oracle数据库提供的包。

1.2.2 使用步骤

1.DriverManager.registerDriver(驱动对象); 传入对应参数即可

1.2.3 案例代码

public class Demo01 {public static void main(String[] args) throws Exception {// 注册驱动DriverManager.registerDriver(new com.mysql.jdbc.Driver());}
}

说明:这里的new Driver()的类Driver就是来自mysql数据库。

通过查询 com.mysql.jdbc.Driver 源码,我们发现Driver类“主动”将自己进行注册

public class Driver extends NonRegisteringDriver implements java.sql.Driver {static {try {// 自己自动注册java.sql.DriverManager.registerDriver(new Driver());} catch (SQLException E) {throw new RuntimeException("Can't register driver!");}}public Driver() throws SQLException {}
}

注意:使用DriverManager.registerDriver(new com.mysql.jdbc.Driver());,存在以下方面不足: 驱动被注册两次

使用Class.forName("com.mysql.jdbc.Driver");加载驱动,这样驱动只会注册一次


2. 获取连接

2.1 API介绍

java.sql.DriverManager类中有如下方法获取数据库连接

//	连接到给定数据库 URL ,并返回连接。 
static Connection getConnection(String url, String user, String password) 

2.2 参数说明

  1. String url:连接数据库的URL,用于说明连接数据库的位置
  2. String user:数据库的账号
  3. String password:数据库的密码

连接数据库的URL地址格式:协议名:子协议://服务器名或IP地址:端口号/数据库名?参数=参数值

在这里插入图片描述

MySQL写法:jdbc:mysql://localhost:3306/day04_db

如果是本地服务器,端口号是默认的3306,则可以简写:jdbc:mysql:///day04_db

2.3 注意事项

如果数据出现乱码需要加上参数: ?useUnicode=true&characterEncoding=utf8,表示让数据库以UTF8编码来处理数据。
如: jdbc:mysql://localhost:3306/day04_db?useUnicode=true&characterEncoding=utf8

2.4 使用步骤

DriverManager.getConnection(url, user, password); 传入对应参数即可

3.5 案例代码

public class Demo01 {public static void main(String[] args) throws Exception {Class.forName("com.mysql.jdbc.Driver");/*1)使用DriverManager类中的静态方法获取和数据库的连接:static Connection getConnection(String url, String user, String password)参数:url:表示建立和数据库服务器连接的地址,书写格式几乎是固定的。jdbc:mysql://连接mysql服务器的ip地址:mysql服务器的端口号/连接的数据库名补充:如果连接的数据库软件在本地,那么url可以简写为:jdbc:mysql:///连接的数据库名user:连接mysql服务器的用户名,这里暂时书写rootpassword:接mysql服务器的密码返回值:Connection,属于java.sql 包下的一个接口,表示连接接口,和数据库的连接。*/// 连接到MySQL// url: 连接数据库的URL// user: 数据库的账号// password: 数据库的密码Connection conn = DriverManager.getConnection(url, "root", "1234");System.out.println(conn);}
}





http://www.mrgr.cn/news/28039.html

相关文章:

  • Spring Boot【一】
  • 【学习】HTTP
  • PyQt入门指南六十 与Python其他库的集成方法
  • RHCE的学习(17)
  • MQTT协议解析 : 物联网领域的最佳选择
  • 【Visual Studio】设置文件目录
  • 【字幕】恋上数据结构与算法之015动态数组03简单接口的实现
  • TikTok商家如何通过真人测评提高流量和销量?
  • C++之AVL树
  • VUE3初学者必备的快速开发入门指南
  • 系统架构设计师教程 第5章 5.6 基于构件的软件工程 笔记
  • Dubbo从入门到实战
  • ??Nginx实现会话保持_Nginx会话保持与Redis的结合_Nginx实现四层负载均衡
  • 嵌入式通信原理—SPI总线通信原理与应用
  • 2024中国算力大会 2024 China Computational Power Conference
  • GB28181在融合指挥调度系统应用方案探究和技术实现
  • 解决跨境电商平台账号无法访问的常见问题
  • springboot老年康复中心—计算机毕业设计源码27406
  • FreeRTOS实战指南 — 3.1 C语言链表
  • 斗破C++编程入门系列之二十七:数组、指针和字符串:string类(一星斗师)
  • 【C++】unordered系列
  • MongoDB的详细安装教程
  • string类的模拟实现
  • 【AI大模型】ChatGPT模型原理介绍(下)
  • 编程辅助工具下一个热门应用场景是什么?(一)
  • Java:继承和多态(2)