mysql-connector-java详解

目录

一、前言:

1、为什么会写这篇文章

2、mysql-connector-java是什么

二、mysql-connector-java的不同版本对比

1、MySQL Connector / J 5.1

2、MySQL Connector / J 8.0

三、下载mysql-connector-java

1、直接下载jar包

2、从maven安装

四、使用示例:

1、在jdbc中使用连接器

2、在spring中使用连接器

五、结语

过去、现在、未来


一、前言:

1、为什么会写这篇文章

前几天我写了一篇关于mysql连接器的文章,文章名是你知道mysql-connector-java是什么吗。写完后自我感觉良好,觉得这篇文章写的还不错,应该是讲清楚了mysql连接器是什么。等过了几天回过头来看,这写的是什么玩意,啥都没讲清楚。这就好比年前写的代码,刚写完的时候觉得自己写的代码逻辑清晰,代码优雅。过完年后,如果不是git上有提交记录,都不敢相信这是自己写的烂代码,这是啥逻辑,注释都没一个,我相信很多读者朋友都有这样的经历。写了烂代码,就需要重构。文章没写清楚,没表达出我的意思,所以我要重新写一篇,这是为什么要写这篇文章的原因。在查阅mysql的官方文档的基础上,加上自己的见解,我尽量将该知识点写准确、清晰。官方文档地址是:MySQL :: Connectors and APIs ,感兴趣的朋友可以去看看。

2、mysql-connector-java是什么

假设你现在是一名大一的学生,没有学习任何编程语言,这学期学校开了mysql的课。老师会告诉你mysql是c/s架构的数据库,分为服务端和客户端,用户通过服务端访问客户端。几节课下来,你会写简单的sql语句了。此时的你应该会用mysql自带的命令行客户端操作数据库,在黑乎乎的窗口中写sql。过了一个多月,老师告诉你还可以用图像化管理工具操作数据库,例如Navicat、SQLyog等。此时你已经用了两种不同类型的客户端操作了mysql,并且已经会用sql写增删改查了。

命令行客户端
Navicat图形化管理工具

到了第二学期你开始学编程语言了,你把C、C++、C#、JAVA、Python统统学了个遍,但是你如何用这些语言编写的程序去操作mysql数据库?mysql提供了连接器,是用于将不同编程语言的应用程序连接到MySQL数据库服务器的驱动程序。用这些语言编写的程序和上面我们讲的命令行客户端和图像化管理工具一样,都属于mysql的客户端,通过客户端是可以操作mysql服务端。下图是mysql官网为不同语言提供的连接器和api的介绍,从图中可以看到为java提供的连接器是Connector / J,也就是mysql-connector-java,它分为5.1版本和8.0版本。Connector / J实现了JDBC,为使用java开发的程序提供连接,方便java程序操作数据库。

二、mysql-connector-java的不同版本对比

我们刚才讲到mysql-connector-java分为5.1版本和8.0版本,但有的朋友可能在项目中用到过6.0版本的jar包,而我们在官网的截图中确实没看到6.0版本。对此我也有很大的疑问,通过查看官方文档,我了解到8.0以前就是6.0,后来版本号更改,6.0变成了8.0,官方推荐升级使用8.0版本的mysql-connector-java。下面我们分析5.1和8.0分别支持的jdk的版本、mysql的版本、jdbc的版本,以及开发项目过程中容易配错的Driver驱动类的全路径名。在开发过程中如果遇到Driver找不到的异常,可以访问java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver异常查看解决方案。

1、MySQL Connector / J 5.1

5.1版本支持java5及其以上的版本,支持5.6、5.7、8.0版本的mysql数据库,支持3.0、4.0、4.1、4.2版本的jdbc。在5.1中,Driver的实现类的全路径名是com.mysql.jdbc.Driver。

2、MySQL Connector / J 8.0

8.0版本支持java8及其以上的版本,支持5.6、5.7、8.0版本的mysql数据库,支持4.2版本的jdbc。在8.0中,Driver的实现类的全路径名是com.mysql.cj.jdbc.Driver。

下图是官网上mysql-connector-java的版本对应的mysql版本和jdk的版本。

三、下载mysql-connector-java

要使用mysql连接器,就要先下载它。如果是一般的项目,那我们需要下载jar包,然后放到项目的lib目录下。如果使用maven构建的项目,我们可以通过maven直接安装。不同的下载方式有不同的操作,下面我们分别讲解一下这两种不同的下载方式。

1、直接下载jar包

下载jar包最直接的方式是从官网下载,官网地址是:MySQL :: Download Connector/J。直接点链接进入mysql官网,选择所需的版本和操作系统(要下载jar包就要选:Platform Independent),然后点击download按钮就可以下载了。如果进不了官网,也可以访问我写的另一篇文章《不同版本mysql-connector-java的jar包下载地址》,可以直接下载。

2、从maven安装

使用maven安装mysql-connector-java就简单很多,直接打开maven的中央仓库地址,输入mysql-connector-java就可以找到不同版本的依赖。地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java

四、使用示例:

当jar包下载好之后,就可以在代码中使用连接器了。下面我们分别介绍在jdbc中使用连接器和在spring中使用连接器,大家也可以对比它们的区别。

1、在jdbc中使用连接器

package com.test;

import com.mysql.jdbc.Driver;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class DbUtil {
    public static final String URL = "jdbc:mysql://localhost:3306/test";
    public static final String USER = "root";
    public static final String PASSWORD = "root";

    public static void main(String[] args) throws Exception {
        //1.加载驱动程序
        Class.forName("com.mysql.jdbc.Driver");
        //2. 获得数据库连接
        Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
        //3.操作数据库,实现增删改查
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM user");
        //如果有数据,rs.next()返回true
        while(rs.next()){
            System.out.println(rs.getString("user_name")+" 年龄:"+rs.getInt("age"));
        }
    }
}

2、在spring中使用连接器

在spring中配置数据源,数据源中的配置包括Driver类的全路径名、url、username、password。再通过数据源获取数据库连接,再通过数据库连接操作数据库。

<bean id="dataSource"
       class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${db.driver}"/>
    <property name="url" value="${db.jdbcurl}"/>
    <property name="username" value="${db.username}"/>
    <property name="password" value="${db.password}"/>
</bean>
// Create a new application context. this processes the Spring config
ApplicationContext ctx =
    new ClassPathXmlApplicationContext("ex1appContext.xml");
// Retrieve the data source from the application context
    DataSource ds = (DataSource) ctx.getBean("dataSource");
// Open a database connection using Spring's DataSourceUtils
Connection c = DataSourceUtils.getConnection(ds);
try {
    // retrieve a list of three random cities
    PreparedStatement ps = c.prepareStatement(
        "select City.Name as 'City', Country.Name as 'Country' " +
        "from City inner join Country on City.CountryCode = Country.Code " +
        "order by rand() limit 3");
    ResultSet rs = ps.executeQuery();
    while(rs.next()) {
        String city = rs.getString("City");
        String country = rs.getString("Country");
        System.out.printf("The city %s is in %s%n", city, country);
    }
} catch (SQLException ex) {
    // something has failed and we print a stack trace to analyse the error
    ex.printStackTrace();
    // ignore failure closing connection
    try { c.close(); } catch (SQLException e) { }
} finally {
    // properly release our connection
    DataSourceUtils.releaseConnection(c, ds);
}

五、结语

过去、现在、未来

以上就是关于mysql-connector-java的介绍,总的来说mysql-connector-java就是帮助java程序操作mysql的驱动程序。通过与mysq服务端建立连接,发送sql语句并且获取结果集。希望这篇文章能够帮助到你,如有疑问,欢迎在评论区中提出。在过去几年中,没写几篇博客,也没意识到写博客的重要性。但现在意识到写博客的重要性了,输出倒逼输入,要想系统性的输出,就得系统性的学习。这段时间写了几篇博客,收获了很多,成长了很多。也发现了自己的不足,在写作方面还有很大的成长空间,一步一个脚印,慢慢的锻炼自己的写作能力。未来会经常性的写博客,不单只写技术,可以聊点程序员生活,聊点人生感悟。感谢支持!

最近新写了一篇关于原生 JDBC 和 Mybatis 对比的文章,感兴趣的可以去瞧一瞧。

  • 122
    点赞
  • 365
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
### 回答1: mysql-connector-javamysql-connector-j是同一个MySQL官方提供的JDBC驱动程序,它用于连接MySQL数据库Java应用程序。mysql-connector-javaMySQL Connector/J的完整名称,其中“J”表示Java,是指这是一个Java驱动程序。而mysql-connector-j则是mysql-connector-java的简写,两者是同一个东西,只是名称不同。 ### 回答2: mysql-connector-javamysql-connector-j都是用于连接Java应用程序和MySQL数据库的驱动程序。它们之间的主要区别可以从以下几个方面来看。 1. 命名方式:mysql-connector-java是根据JDBC(Java数据库连接)的命名方式来命名的,而mysql-connector-j是MySQL Connector/J的缩写命名方式。 2. 版本历史:mysql-connector-javaMySQL官方发布的Java驱动程序,它的版本号与MySQL数据库的版本号是对应的。而mysql-connector-j是在mysql-connector-java的基础上进行二次开发和维护的版本。 3. 社区贡献:mysql-connector-javaMySQL官方维护,更新频率较稳定,并提供了常见的功能和支持。而mysql-connector-j则是由独立的开发者或第三方贡献者维护,更新可能相对较少。 4. 功能支持:由于mysql-connector-javaMySQL官方的驱动程序,它相对完整地支持了MySQL数据库的各种功能,如事务处理、存储过程等。而mysql-connector-j则可能只支持部分数据库功能,具体取决于开发者对其进行的二次开发。 总体来说,mysql-connector-java是更常用和可靠的MySQL数据库驱动程序,由MySQL官方提供支持和维护。而mysql-connector-j则可能是由第三方进行了一些个性化的开发和定制,可能用于特定的应用场景。选择使用哪个驱动程序取决于具体的需求和项目要求。 ### 回答3: mysql-connector-javamysql-connector-j其实是指的同一个东西,都是用于Java程序连接MySQL数据库的驱动程序。mysql-connector-java是该驱动程序的官方名称,而mysql-connector-j则是该驱动程序的简称。 mysql-connector-javaJava语言开发的,它提供了一个API,使得Java程序可以直接连接和操作MySQL数据库。通过mysql-connector-javaJava程序可以执行数据的增删改查操作,执行SQL语句,以及连接和断开数据库等。 mysql-connector-j是mysql-connector-java的缩写形式,常用于命令行或脚本的写作。在一些场景中,为了方便输入或提高效率,人们更倾向于使用mysql-connector-j这个简称。 总结来说,mysql-connector-javamysql-connector-j在功能和使用上并没有实质的差别,只是一个是官方名称,一个是简称。无论是使用mysql-connector-java还是mysql-connector-j,都是为了实现Java程序与MySQL数据库的连接和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值