JDBC连接MySQL数据库教程
怎样用jdbc连接mysql

首页 2025-06-16 09:54:08



怎样用JDBC连接MySQL Java数据库连接(JDBC)是Java语言与数据库交互的标准API,通过JDBC,Java程序可以连接和操作几乎所有的关系型数据库

    MySQL作为广泛使用的开源关系型数据库管理系统,与JDBC的结合使得Java开发者能够高效地进行数据库操作

    本文将详细介绍如何使用JDBC连接MySQL数据库,涵盖从准备环境到实际连接操作的各个方面

     一、准备环境 在开始之前,你需要确保已经安装了以下软件: 1.Java Development Kit (JDK):用于编译和运行Java程序

     2.MySQL数据库:本文示例将使用MySQL作为目标数据库

     3.MySQL Connector/J:MySQL官方提供的JDBC驱动程序,用于Java程序与MySQL数据库的通信

     1.1 下载并安装MySQL MySQL的安装过程因操作系统而异,但通常可以通过以下步骤完成: 1.访问MySQL官方网站,下载适用于你操作系统的MySQL安装包

     2. 按照安装向导的指示完成安装

     3. 安装完成后,启动MySQL服务

     1.2 下载MySQL Connector/J MySQL Connector/J是MySQL官方提供的JDBC驱动程序,用于Java程序与MySQL数据库的通信

    下载步骤如下: 1.访问MySQL官方网站,导航到Connector/J的下载页面

     2. 选择与你安装的MySQL版本相匹配的Connector/J版本进行下载

    例如,如果你的MySQL版本是8.0,那么选择一个相近的8.x版本的Connector/J

     3. 下载完成后,解压下载的压缩包,找到其中的JAR文件(例如mysql-connector-java-8.x.x.jar)

     1.3 配置Java项目 将下载的MySQL Connector/J JAR文件添加到你的Java项目中,以便在编译和运行时使用

    具体步骤取决于你使用的IDE(集成开发环境): -Eclipse:右键点击项目 -> Properties -> Java Build Path -> Libraries -> Add External JARs,然后选择下载的JAR文件

     -IntelliJ IDEA:将JAR文件复制到项目的libs目录下,然后右键点击JAR文件 -> Add as Library

     二、JDBC连接MySQL的方式 JDBC提供了多种方式来连接MySQL数据库,下面将介绍五种常用的连接方式

     2.1 直接实例化Driver(静态加载) 这是最直接的方式,通过显式创建Driver对象并调用其connect方法获取数据库连接

    示例代码如下: java import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.Properties; import java.sql.SQLException; public class JdbcConnect01{ public static void main(String【】 args){ try{ //显式依赖MySQL驱动类 Driver driver = new com.mysql.cj.jdbc.Driver(); // 数据库URL String url = jdbc:mysql://localhost:3306/mydb; // 数据库连接属性 Properties props = new Properties(); props.setProperty(user, root); props.setProperty(password, root); // 获取连接 Connection conn = driver.connect(url, props); System.out.println(Connection established: + conn); } catch(SQLException e){ e.printStackTrace(); } } } 注意事项: - 确保导入的Driver类是`com.mysql.cj.jdbc.Driver`,这是MySQL8.0及以上版本的驱动类

     - URL格式应为`jdbc:mysql://主机:端口/数据库名`

     -用户名和密码应替换为你自己的数据库凭据

     2.2反射动态加载Driver 通过反射机制加载Driver类,然后实例化并调用connect方法

    示例代码如下: java import java.sql.Connection; import java.sql.Driver; import java.sql.Properties; import java.sql.SQLException; public class JdbcConnect02{ public static void main(String【】 args){ try{ // 通过反射加载Driver类 Class clazz = Class.forName(com.mysql.cj.jdbc.Driver); Driver driver =(Driver) clazz.newInstance(); // 数据库URL和连接属性 String url = jdbc:mysql://localhost:3306/mydb; Properties properties = new Properties(); properties.setProperty(user, root); properties.setProperty(password, root); // 获取连接 Connection connect = driver.connect(url, properties); System.out.println(Connection established: + connect); } catch(Exception e){ e.printStackTrace(); } } } 这种方式相比直接实例化Driver更加灵活,因为它不需要在代码中显式依赖特定的Driver类

     2.3 DriverManager统一管理驱动 使用DriverManager类来注册和管理驱动,并通过其getConnection方法获取数据库连接

    示例代码如下: java import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; public class JdbcConnect03{ public static void main(String【】 args){ try{ // 通过反射加载Driver类 Class clazz = Class.forName(com.mysql.cj.jdbc.Driver); Driver driver =(Driver) clazz.newInstance(); // 注册驱动到DriverManager DriverManager.registerDriver(driver); // 数据库URL、用户名和密码 String url = jdbc:mysql://localhost:3306/mydb; String user = root; String password = root; // 获取连接 Connection conn = DriverManager.getConnection(url, user, password); System.out.println(Connection established: + conn); } catch(Exception e){ e.printStackTrace(); } } } 虽然这种方式在功能上与前一种类似,但DriverManager提供了更统一和灵活的方式来管理数据库驱动

     2.4 自动驱动注册(推荐) 仅通过反射加载Driver类,无需显式实例化或注册驱动,DriverManager会自动处理这些工作

    示例代码如下: java import java.sql.Connection; import java.sql.SQLException; public class JdbcConnect04{ public static void main(String【】 args){ try{ //触发驱动静态代码块自动注册 Class.forName(com.mysql.cj.jdbc.Driver); // 数据库URL、用户名和密码 String url = jdbc:mysql://localhost:3306/mydb; String user = root; String password = root; // 获取连接 Connection conn = DriverManager.getConnection(url, user, password); System.out.println(Connection established: + conn); } catch(Exception e){ e.printStackTrace(); } } } 这是目前最常用的方式之一,因为它简化了代码并减少了出错的可能性

    MySQL的Driver类在静态代码块中自动注册到DriverManager,因此无需手动调用registerDriver方法

     2.5配置文件解耦(企业级方案) 将数据库连接信息存储在配置文件中,通过Properties类读取配置并连接数据库

    这种方式提高了代码的可维护性和灵活性

     1.创建配置文件:在项目的src目录下创建一个名为mysql.properties的文件,并添加以下内容: properties user=root password=root url=jdbc:mysql://localhost:3306/mydb driver=com.mysql.cj.jdbc.Driver 2.读取配置文件并连接数据库: java import java.io.FileInputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; public class JdbcConnect05{ public static void main(String【】 args){ try{ //加载配置文件 Properties properties = new Properties(); properties.load(new FileInputStream(src/mysql.properties)); // 获取配置信息 String url = properties.getProperty(url); String user = properties.getProperty(user); String password = properties.getProperty(password); // 获取连接 Connection conn = DriverManager.getConnection(url, user, password); System.out.println(Connection established: + conn); } catch(Exception e){ e.printStackT

MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道