JDBC连接Mysql的方式有哪些

测试环境说明

mysql数据库:jdbc:mysql://localhost:3306/test

IDE:IDEA 2022

JDK:JDK8

mysql:mysql 5.7

JDBC:5.1.37

第一种方式

使用静态加载驱动方式,连接mysql

这种方式灵活性差,依赖性强

public void connection01() throws SQLException {    // 注册驱动    Driver driver = new Driver();    // 创建Properties对象,用于保存mysql账号和密码键值对    Properties properties = new Properties();    properties.setProperty("user", "root");    properties.setProperty("password", "123456");    String url = "jdbc:mysql://localhost:3306/test";    // 得到mysql的连接    Connection connection = driver.connect(url, properties);    // 得到可以与mysql语句进行交互的对象    Statement statement = connection.createStatement();    // 关闭与 mysql语句进行交互的对象    statement.close();    // 关闭与mysql的连接    connection.close();

第二种方式

在第一种方式的基础上使用反射动态加载驱动,依赖性减小、灵活性提高

public void connection02() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {    // 使用反射动态加载mysql驱动件程序    Class aClass = Class.forName("com.mysql.jdbc.Driver");    Driver driver = (Driver) aClass.newInstance();    // 创建Properties对象,用于保存mysql账号和密码键值对    Properties properties = new Properties();    properties.setProperty("user", "root");    properties.setProperty("password", "123456");    String url = "jdbc:mysql://localhost:3306/test";    // 得到mysql的连接    Connection connection = driver.connect(url, properties);    // 得到可以与mysql语句进行交互的对象    Statement statement = connection.createStatement();    // 关闭与 mysql语句进行交互的对象    statement.close();    // 关闭与 mysql语句进行交互的对象    connection.close();}

第三种方式

使用DriverManager统一进行管理

public void connection03() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {// 使用反射动态加载mysql驱动件程序    Class aClass = Class.forName("com.mysql.jdbc.Driver");    Driver driver = (Driver) aClass.newInstance();    String user = "root";    String password = "123456";    String url = "jdbc:mysql://localhost:3306/test";    // 使用DriverManager加载Driver    DriverManager.registerDriver(driver);    // 得到mysql的连接    Connection connection = DriverManager.getConnection(url, user, password);    // 得到可以与mysql语句进行交互的对象    Statement statement = connection.createStatement();    // 关闭与 mysql语句进行交互的对象    statement.close();    // 关闭与 mysql语句进行交互的对象    connection.close();}

第四种方式

其实Class.forName(“com.mysql.jdbc.Driver”)在底层已经自动加载好了Driver实例

所以Driver driver = (Driver) aClass.newInstance();这句话可以省略

这种方式也是开发中使用最多的一种方式

public void connection04() throws ClassNotFoundException, SQLException {    // 使用反射动态加载mysql驱动件程序    Class aClass = Class.forName("com.mysql.jdbc.Driver");    String user = "root";    String password = "123456";    String url = "jdbc:mysql://localhost:3306/test";    // 得到mysql的连接    Connection connection = DriverManager.getConnection(url, user, password);    // 得到可以与mysql语句进行交互的对象    Statement statement = connection.createStatement();    // 关闭与 mysql语句进行交互的对象    statement.close();    // 关闭与 mysql语句进行交互的对象    connection.close();}

第五种方式

mysql5.16后可以不用Class.forName(“com.mysql.jdbc.Driver”);来加载驱动了
从jdk1.5以后使用了jdbc4,不再需要显示调用class.forName()注册驱动而是自动调用驱动jar包下META-INF\services\java.sql.Driver文本中的类名称去注册
建议还是写上 CLass . forName(“com.mysql.jdbc.Driver”),更加明确,兼容性更好

这里同时使用properties配置文件实现动态信息动态读取,灵活性得到提升

推荐使用这种方式

src/com/mysql/mysql.properties配置文件内容如下

url=jdbc:mysql://localhost:3306/testuser=rootpassword=123456

连接mysql程序

public void connection05() throws SQLException, ClassNotFoundException, IOException {    // 使用Properties读取配置文件下的内容    Properties properties = new Properties();    properties.load(new FileInputStream("src/com/mysql/mysql.properties"));    String url = properties.getProperty("url");    String user = properties.getProperty("user");    String password = properties.getProperty("password");    // 得到mysql的连接    Connection connection = DriverManager.getConnection(url, user, password);    // 得到可以与mysql语句进行交互的对象    Statement statement = connection.createStatement();    // 关闭与 mysql语句进行交互的对象    statement.close();    // 关闭与 mysql语句进行交互的对象    connection.close();}

以上就是JDBC连接Mysql的方式有哪些的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/148726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
7-Zip如何创建固实压缩包 7-Zip高级压缩模式教程
上一篇 2025年12月2日 21:48:01
阴阳师 × 中国版画博物馆 | 第二弹「绮世绘影」系列新皮肤上线!
下一篇 2025年12月2日 21:48:02

相关推荐

  • MySQL中怎么进行sql_mode查询与设置

    mysql中怎么查询与设置sql_mode?下面本篇文章给大家介绍一下mysql中sql_mode查询与设置的方法。 MySQL的sql_mode查询与设置 1,执行SQL查看【相关推荐:mysql视频教程】 select @@session.sql_mode; 全局级别: 查看 select @@…

    2026年9月4日
    000
  • MySQL中什么是游标?如何使用游标?

    什么是游标?如何使用游标?下面本篇文章就来带大家了解一下mysql中的游标,介绍一下使用游标的步骤,希望对大家有所帮助! 要明白什么是游标,首先要了解存储过程,存储过程是事先经过编译并且存储在数据库中的一段SQL语句,他可以接受参数,也可以在其中使用IF语句、设置变量、循环等,比如下面语句用于创建一…

    2026年9月4日
    000
  • MySQL中怎么启用并分析慢查询日志?

    本篇文章带大家了解一下mysql中的慢查询,介绍一下启用慢查询日志,并分析慢查询的方法,希望对大家有所帮助! Mysql有一项功能可以记录长时间查询的慢记录,具体是多长时间可以自己配置,但是慢查询也未必就是不良的SQL,也可能受其他查询影响,或者是系统资源限制导致的,它也是我们常用的性能分析工具。【…

    2026年9月4日
    400
  • 如何实现Linux网络故障转移 高可用网络配置实例

    如何实现Linux网络故障转移 高可用网络配置实例如何实现Linux网络故障转移 高可用网络配置实例如何实现Linux网络故障转移 高可用网络配置实例如何实现Linux网络故障转移 高可用网络配置实例

    在linux环境中构建可靠的网络服务需通过网络接口绑定和keepalived实现故障转移。1. 网络接口绑定(bonding/teaming)用于物理链路层冗余,常用模式包括active-backup(保障故障切换)、balance-rr(轮询负载均衡)和802.3ad(lacp标准,支持负载均衡与…

    2026年9月4日 用户投稿
    000
  • MySQL搞清什么是分区表?什么是临时表?

    什么是分区表?什么是临时表?下面本篇文章带大家了解一下mysql中的分区表和临时表,希望对大家有所帮助! 临时表 MySQL中有一种表叫做临时表,指的是用CREATE TEMPORARY TABLE语句创建的,它是一种特殊类型的表,它允许存储临时结果,可以在单个会话中多次重复使用,对其他连接是不可见…

    2026年9月4日
    200
  • VSCode怎么弄颜色_VSCode自定义语法高亮和主题颜色教程

    自定义VSCode颜色需通过settings.json文件,结合主题扩展与个性化设置。首先安装喜欢的颜色主题,再通过workbench.colorCustomizations调整UI元素(如侧边栏、状态栏),使用editor.tokenColorCustomizations修改代码语法高亮,包括通用…

    2026年9月4日
    000
  • 怎么快速使用MySQL Sandbox部署mysql

    使用MySQL Sandbox快速部署mysql MySQL Sandbox是一个非常简单快捷部署MySQL技术的一个工具套件,它可以让你在同一台机器上,更加快速的无干扰的去达到你的最终目的,比如,作为软件测试人员只是要测试软件系统的良好性不需要在mysql的安装上纠缠过多,不需要对MySQL数据库…

    用户投稿 2026年9月4日
    000
  • 详解mysql double master的配置方法

    mysql 的 double master 配置 假设两台机器  ip 分别为 机器一: 192.168.14.37  机器二:  192.168.14.38 ,服务器 为 linux rhel 5.9 在两台服务器中执行创建用户语句: mysql:>create user ‘repl’@’%…

    用户投稿 2026年9月4日
    100
  • Java远程调试(Remote Debugging)的那些事

    前言本文将探讨如何处理和调试那些仅在生产环境(或其他远程环境)中发生,而本地开发环境无法重现的“问题”。任何遇到这种情况的人都必须承认,试图找出这种“问题”原因的过程,很可能以一堆无根据的猜测告终:这是一个非常耗时且效率低下的过程。 还有一种情况,你得到了一个可以部署的war/jar包,只有clas…

    2026年9月4日
    000
  • 深入学习MySQL,了解InnoDB的逻辑存储结构

    本篇文章带大家了解一下innodb逻辑存储结构,希望对大家有所帮助! InnoDB逻辑存储结构 在InnoDB中我们创建的表还有对应的索引数据都存储在扩展名为.ibd 的文件中,这个文件路径可以先通过查mysql变量datadir来得到,然后进入对应的数据库名目录,会看到很多ibd,文件名就是表名,…

    2026年9月4日
    100
  • 教你怎么在线安装Mysql

    Mysql在线安装 一、 检查系统中是否已安装了mysql服务或开发包依赖等 [bigdata@bigdata-pro02 ~]$ rpm -qa | grep mysqlmysql-libs-5.1.73-3.el6_5.x86_64 如果检查存在一些安装包,则使用 rpm -e –n…

    用户投稿 2026年9月4日
    000
  • 深入浅析MySQL中常见的6种约束类型

    约束的字面意思就是规定或者限制某个事该如何去做,在MySQL中,约束就是对数据表中数据指定规则,也就是对数据进行限制,以此来确保可靠性,比如不允许某列出现Null值,实际中我们会遇到以下类型的约束。 NOT NULL : 确保列不能有NULL值CHECK : 确保列中的值满足特定条件UNIQUE :…

    2026年9月4日
    000
  • 解决PHP Web应用数据更新延迟:浏览器缓存管理与实时内容展示

    本文深入探讨了PHP应用在本地开发环境中,当JSON数据或图片文件更新后,Web视图未能及时反映最新内容的问题。核心原因在于浏览器缓存机制。文章将详细介绍多种有效的解决方案,包括利用查询参数强制缓存失效、通过修改文件名实现版本控制,以及配置服务器端的缓存策略,旨在帮助开发者确保Web应用能够准确、实…

    2026年9月4日
    000
  • MySQL和Redis数据一致性:延迟双删与先改库再删缓存,哪种方案更优?

    MySQL和Redis数据一致性:如何选择延迟双删或先改库再删缓存? 在使用MySQL和Redis构建应用时,数据一致性至关重要。本文将对比分析两种常用的数据一致性方案:延迟双删和先修改数据库再删除缓存,并探讨其适用场景。 延迟双删策略 延迟双删是指先更新数据库,然后异步删除缓存。这种方法允许短暂的…

    2026年9月4日
    100
  • 详细解读MySql都有哪些顽疾

    MySql顽疾解读 1、默认编码集问题 在做前台数据展示的时候,查询全部select * from t_news可以查到所有内容。然后参数化查询的时候就不行。比如: Select * from t_news where title like ‘%源代码教育%’;查到0条数据。 Select * fr…

    用户投稿 2026年9月4日
    000
  • 深入学习MySQL中的逻辑查询

    查询是mysql中的最频繁操作,它也是用于构建delete、update的基础;而查询处理可分为逻辑查询和物理查询。今天我们就来给大家详细介绍一下逻辑查询,希望对大家有所帮助! 在MySQL中,查询是用于构建DELETE、UPDATE的基础,因为你要删除或者更新他们时,首先就是要查出这些记录,所以S…

    2026年9月4日
    000
  • 一文详解MySql分表、分库、分片和分区

                                                                                    一、前言 数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈。需要进行数据的处理,采用的手段是分区、分片、分库、分表。 二、分片(类…

    2026年9月4日
    000
  • Word怎么设置标题样式级别_Word多级标题样式设置与应用

    正确设置标题样式级别可实现文档结构化管理。首先应用内置标题样式如“标题1”“标题2”为文本定义层级;其次通过右键修改样式统一字体、段落等格式,并可保存至模板;接着结合“多级列表”功能创建带编号的自定义标题样式,将各级别链接到对应标题样式;最后使用大纲视图直观调整标题层级与顺序,完成文档结构优化。 如…

    2026年9月4日
    100
  • MySQL学习之浅析联结查询和集合操作

    MySQL学习之浅析联结查询和集合操作MySQL学习之浅析联结查询和集合操作MySQL学习之浅析联结查询和集合操作MySQL学习之浅析联结查询和集合操作

    本篇带大家了解一下mysql中的联结查询和集合操作,希望对大家有所帮助! 联结查询 联结查询就是指两张或者以上的表之间进行匹配查询,一般称之为水平操作,就是最终结果会包含这几个表中所有的列,MySQL中有三种联结操作,交叉联结、内联结、外联结。【相关推荐:mysql视频教程】 交叉联结叫做CROSS…

    2026年9月4日 用户投稿
    100
  • MySQL数据迁移有哪些方案_如何保证数据一致性?

    MySQL数据迁移有哪些方案_如何保证数据一致性?MySQL数据迁移有哪些方案_如何保证数据一致性?MySQL数据迁移有哪些方案_如何保证数据一致性?MySQL数据迁移有哪些方案_如何保证数据一致性?

    mysql数据迁移需根据业务需求和数据量选择合适方案。一、逻辑导出导入(mysqldump + source)适用于小数据量,加–single-transaction参数可保证一致性快照;二、物理文件迁移(xtrabackup)适合大数据量且需不停机场景,恢复时注意版本与配置一致;三、主…

    2026年9月4日 用户投稿
    100

发表回复

登录后才能评论
关注微信