测试环境说明

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加载DriverDriverManager.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/test
user=root
password=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的五种方式相关推荐

  1. Jdbc连接mysql的五种连接方式

    一:五种连接方式 直接上码 package com.wyjedu.jdbc;import com.mysql.jdbc.Driver;import java.io.FileInputStream; i ...

  2. php mysql 连接方法 对比_Mysql实例php连接MySQL的两种方式对比

    <Mysql实例php连接MySQL的两种方式对比>要点: 本文介绍了Mysql实例php连接MySQL的两种方式对比,希望对您有用.如果有疑问,可以联系我们. MYSQL数据库记录一下P ...

  3. python连接mysql三种方式_用 Python 连接 MySQL 的几种方式详解

    每个学 Python 的都有必要学好一门数据库,不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Pyt ...

  4. 连接MySQL的5种方式

    我们从事项目开发,和数据库打交道是必不可少的环节.今天为大家分享Java中连接数据库(本文演示使用的是MySQL数据库,其他关系型数据库类似)常用的5种方式,读者可以自行比较优缺点,在实际项目开发或学 ...

  5. C++连接mysql的两种方式(ADO连接和mysql api连接)

    一.ADO连接mysql 1.安装mysql-5.5.20-win32.msi和mysql-connector-odbc-5.3.4-win32.msi(一般两个安装程序要匹配,否则可能连接不上)   ...

  6. node连接MySQL的三种方式

    以下我们将说明node连接数据库的三种方式,并进行利弊说明,以挑选出最适合项目的连接方式. 1.使用mysql包的提供的接口进行连接 例如: connection.query('SELECT * FR ...

  7. 路由 php mysql_Php 连接 MySQL 的三种方式

    PHP与MySQL的连接有三种API接口 分别是:PHP的MySQL扩展 .PHP的mysqli扩展 .PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案. P ...

  8. python连接mysql的几种方式_Python连接MySQL数据库的多种方式

    本次代码实现连接远程服务器 由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器. 目前,MySQL驱动有几种: mysql-c ...

  9. java连接MySQL几种方法_Java连接MySQL数据库三种方法

    好久没有更新博客了!今天利用周目时学习了一下数据库mysql.介绍一下数据库的三种连接方式! 开发工具:Myeclipse MySQL5.6 MySQL连接驱动:mysql-connector-jav ...

最新文章

  1. poj2240(Bellman-ford)
  2. Java堆内存是线程共享的!面试官:你确定吗?
  3. mysql多实例(mysqld_multi方式)
  4. The return types for the following stored procedures could not be detected
  5. CSS3属性——(一)
  6. 把一个dataset的表放在另一个dataset里面_现在开始:用你的Mac训练和部署一个图像分类模型...
  7. 锐界机器人_2019款锐界智能家居远程控制使用介绍
  8. 10W阅读,万人点赞,这套大数据平台建设方法论,到底有什么干货
  9. python如何表示坐标_python – 如何制作x坐标字母?
  10. pandas 如何删掉第一行_Pandas-数据筛选
  11. 通过MVC模式将Web视图和逻辑代码分离
  12. 如何避免向下传递回调?
  13. 比较大小教案计算机西瓜,比较大小小班教案
  14. Web3D编程入门总结——WebGL与Three.js基础介绍
  15. Android 百度地图搜索框实现,仿百度地图街景实现
  16. STM32----矩阵按键
  17. TFS2010 - 强制撤销签出
  18. android启用hdcp_如何在Android Auto上启用开发人员设置
  19. 三人行,必有我师焉!
  20. 代码设置textField和textView的border和borderColor

热门文章

  1. Mittag-Leffler定理,Weierstrass因子分解定理和插值定理
  2. 2.2 黑群晖驱动安装:Synology Photos人脸识别
  3. 功率因数 、有功、无功之间的关系
  4. 淘宝助理 引用picture存在盗链解决方案
  5. OMS系统之push_tb_wait_send_data表的索引优化
  6. 深度学习训练营之识别宝可梦人物和角色
  7. 【金融】金融数学(一)——术语概念
  8. 宝马自动驾驶战略 - 深度学习的部署【附PDF原版英文资料下载】
  9. 周末了,围观知乎福利话题,放松一下
  10. 计算机编程在生物学的应用,生物信息学_复习题及答案(打印)