JDBC连接MySQL8.0案例详解

您所在的位置:网站首页 加载mysql驱动的语句是 JDBC连接MySQL8.0案例详解

JDBC连接MySQL8.0案例详解

2024-03-30 02:38| 来源: 网络整理| 查看: 265

JDBC本质上是一个介于应用程序和数据库之间的公共接口,通过对这个接口的实现,我们可以建立应用程序和数据库之间的连接,便捷的访问数据库数据。

不同版本的MySQL连接的参数是有一些小差别的,以下内容基于一个JDBC连接案例讲解连接数据库的过程。

数据库版本:MySQL8.0.29

准备工作(导入MySQL驱动)

首先,得确保你的MySQL版本和你的MySQL驱动是对应的,不要出现装的MySQL5.几版本用的最新8.几驱动的情况。

如果不清楚自己当前安装的MySQL版本的话,可以进入命令行输入mysql --version查看:

知道自己数据库版本之后就可以去MySQL官网下载对应驱动了

MySQL驱动下载地址:MySQL :: Download MySQL Connector/J (Archived Versions)

 下载完成后,找到文件,解压之后找到驱动的jar包

 赋值当前路径,接下来打开IDEA-进入设置找到Project Structure

点击Libraries,按下面步骤,将刚解压完的驱动路径粘贴找到

选中之后,点击ok,导入驱动。

到这里准备工作就完成了。

案例演示

新建一个jdbc测试类,编写jdbc连接程序,提示异常直接抛出,注意导对包,

public static void main(String[] args) throws ClassNotFoundException, SQLException { //实现Driver接口 //Driver接口是所有 JDBC 驱动程序需要实现的接口 Driver driver = new Driver();//需要导包,可替换为new com.mysql.cj.jdbc.Driver(); //提供用户信息和url String url = "jdbc:mysql://localhost:3306/db_demo?useSSL=false&serverTimezone=UTC"; String username = "root"; String password = "123456"; //注册驱动 DriverManager.registerDriver(driver); //创建连接对象 Connection connection = DriverManager.getConnection(url, username, password); //创建Statement对象,用于SQL语句 Statement statement = connection.createStatement(); //编写sql String sql = "SELECT * FROM t_demo"; //接收sql执行结果 //由于此处sql为查询语句,有返回值,所以需要一个接收结果的对象 //当执行的sql为增、删、改操作时,是没有返回值的,也就不需要接收结果这一步 ResultSet resultSet = statement.executeQuery(sql); //打印结果验证 while(resultSet.next()){ System.out.print("id="+resultSet.getObject("id")+" "); System.out.print("stuname="+resultSet.getObject("stuname")+" "); System.out.print("seat="+resultSet.getObject("seat")+" "); System.out.println(); } //释放连接 resultSet.close(); statement.close(); connection.close(); }

db_demo数据库表内容 

程序执行结果

以上是一个基本的jdbc程序,各项连接属性值都是写死的,一般在使用过程中都是将连接属性放在配置文件内,通过读取配置文件来获取连接信息,方便后续修改连接信息。

可修改为:

public static void main() throws IOException, SQLException, ClassNotFoundException { //创建问价输入流 InputStream is = jdbcTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); //将配置文件内容加载到properties集合 Properties pros = new Properties(); pros.load(is); String url = pros.getProperty("url"); String username = pros.getProperty("user"); String password = pros.getProperty("password"); String driverClass = pros.getProperty("driverClass"); //加载mysql驱动,会自动注册DriverManager Class.forName(driverClass); //获取连接 Connection connection = DriverManager.getConnection(url, username, password); //创建Statement连接对象 用于执行SQL Statement statement = connection.createStatement(); //编写sql语句 String sql = "SELECT * FROM t_demo"; //执行SQL并接受返回结果 ResultSet resultSet = statement.executeQuery(sql); //遍历输出 while(resultSet.next()){ System.out.println("id="+resultSet.getObject("id")); System.out.println("stuname="+resultSet.getObject("stuname")); System.out.println("seat="+resultSet.getObject("seat")); } //释放连接 resultSet.close(); statement.close(); connection.close(); } }

获取文件输入流语句分析

InputStream is = jdbcTest.class.getClassLoader().getResourceAsStream("jdbc.properties");

InputStream is = jdbcTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); jdbcTest.class:类名,jdbcTest 是一个示例类名,表示当前代码所在的类。通过 getClass() 方法获取到当前类的运行时类对象。 getClassLoader():是一个类加载器方法,通过运行时类对象的 getClassLoader() 方法获取到当前类的类加载器。 getResourceAsStream("jdbc.properties"):类加载器的方法,用于加载资源文件。 getResourceAsStream() 接受一个资源的路径参数(相对于类路径),返回一个输入流(InputStream)对象。

配置文件内容

#配置文件放在src下,不能放在功能分块儿中,部署的时候会丢失 user=root password=123456 url=jdbc:mysql://localhost:3306/db_demo?useSSL=false&serverTimezone=UTC driverClass=com.mysql.cj.jdbc.Driver

自动注册原理

通过查看Driver源码,可以发现在类加载的时候,就已经自动注册驱动了,所以我们在使用的使用,只需要加载一下即可。

over!



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3