获取驱动jar包

官网下载jar包导入工程

安装Java和安装MySQL这里就不说了,可以通过官网链接下载驱动。

注意如果是WindowsOS不要直接下Windows,那个不是JDBC,应该选上面的"Selecting Operating System…“,再选"Plantform Independent”,在这里选那个.zip文件。Unix/Linux的选择上面的.tar.gz文件。

想选择版本的话,选择Archives:

打开.zip就有.jar,自取并导入工程。

jar包导入方法:

  • 把.jar导入idea的话,推荐阅读这篇文章。
  • 把.jar导入eclipse的话,推荐阅读这篇文章。

Maven引入jar包

访问Maven中央仓库,搜索mysql-connector-java,在页面中寻找对应版本的pom引入配置。

例如,8.0.28版本的引入配置是:

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version>
</dependency>

随后引入jar包即可。

解读URL

URL为jdbc:mysql://localhost:3306/[database_name]

  • jdbc:mysql://:JDBC连接方式
  • localhost:本机地址
  • 3306:SQL数据库的端口号(MySQL用这个就行了)
  • [database_name]:待连接的数据库的名称

一般来说,只需要自己写一下DatabaseName即可,注意这个库应该是存在的,否则会报错。

版本问题

笔者使用的jar包是 mysql-connector-java-8.0.19.jarmysql-connector-java版本在8以上时应该使用:com.mysql.cj.jdbc.Driver

乱码问题

运行起来可能还会有乱码问题,我遇到过的一个乱码问题的异常栈是这样的:

java.sql.SQLException: The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the ‘serverTimezone’ configuration property) to use a more specifc time zone value if you want to utilize time zone support.
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836)
    at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456)
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
    at main.JDBCTest.main(JDBCTest.java:19)
Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the ‘serverTimezone’ configuration property) to use a more specifc time zone value if you want to utilize time zone support.
  at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
  at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
  at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
  at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85)
  at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:132)
  at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2118)
  at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2142)
  at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1310)
  at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:967)
  at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826)
  … 6 more

处理方法是:

将URL改为jdbc:mysql://localhost:3306/library?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai

Demo

数据库名、用户名、密码 这三个需要自己替换,注意版本是否与笔者大概一致,如果是8-版本就很不一样!

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class JDBCDemo {public static void main(String[] args) {String driverName="com.mysql.cj.jdbc.Driver";String dbURL="jdbc:mysql://localhost:3306/dbName?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai";// 你的登录名,自己写,比如rootString userName="userName";// 你的登录密码,自己写String userPassword="userPassword";try {Class.forName(driverName);System.out.println("加载MySQL驱动成功");} catch (ClassNotFoundException e) {System.out.println("加载MySQL驱动失败");}try (Connection dbConnection = DriverManager.getConnection(dbURL, userName, userPassword)) {System.out.println("连接数据库成功");} catch(SQLException e) {System.out.println("数据库连接失败");}}}

运行结果:

加载MySQL驱动成功
连接数据库成功

【Java】JDBC连接MySQL驱动相关推荐

  1. java JDBC连接MySQL数据库调用存储过程进行查询

    java JDBC连接MySQL数据库调用存储过程进行查询 主程序代码 工具类 文件信息 存储过程 结果截图 主程序代码 package Mysql;import util.JDBCUtils; im ...

  2. Java JDBC 连接MySQL数据库方法(IJ版)

    Java JDBC 连接MySQL数据库方法(IJ版) 首先说一下IJ建立项目步骤: 1.新建一个Empty Project 2.新建一个Module 3.在src里新建一个Package 4.在Pa ...

  3. Java jdbc连接mysql 封装类

    Java jdbc连接mysql 封装类 开发工具与关键技术:java. myelipse2017.jdk1.8 作者:Amewin 撰写时间:2019年5月26日 JDBC简介: JDBC全称为ja ...

  4. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  5. JAVA JDBC连接mysql编程

    JDBC连接mysql编程 基本操作 package jdbc;import java.sql.Statement; import java.util.Scanner; import java.sql ...

  6. java jdbc 连接mysql数据库,Java 通过JDBC连接Mysql数据库

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

  7. jdbc连接mysql驱动包_jdbc连接数据库驱动包

    FineReport如何用JDBC连接阿里云ADS数据库 在使用FineReport连接阿里云的ADS(AnalyticDB)数据库,很多时候在测试连接时就失败了.此时,该如何连接ADS数据库呢? 我 ...

  8. java JDBC连接mysql

    下载驱动包:http://dev.mysql.com/downloads/connector/j/,解压得到jar文件,例如mysql-connector-java-8.0.11.jar 在项目下新建 ...

  9. jdbc连接mysql驱动方式_JDBC连接数据库系列教程 – JDBC注册驱动的常见方式

    方法1 DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver(),2); 方法2 System.s ...

最新文章

  1. 圆角有边框背景色时,背景色溢出问题
  2. python操作系统-Python操作系统
  3. Java虚拟机垃圾收集器初步学习
  4. 在游戏中强制关机,不能对关机提示框进行操作
  5. Unix command to find CPU Utilization
  6. 数学建模学习笔记——分类模型
  7. jvm内存模型和java内存模型_JVM运行时内存模型综述
  8. c语言下标法与指针法,《C和指针》中关于指针与下标的问题
  9. 并发编程中,你加的锁未必安全
  10. php echo nbsp,关于include里面的函数echo的问题
  11. 1.2 编程语言选择 | 排行榜、对比、现状,java c++语言对比,哪个工资高、难度更高,mysql数据库对比,java入门怎么学
  12. 【数论】Pollard-Rho 算法总结
  13. 小学生课外必读书目(推荐)
  14. SAP BASIS ADM100 中文版 Unit 7(1)
  15. Error starting userland proxy: listen tcp4 0.0.0.0:8005: bind: address alrea
  16. 位于法国诺曼底旅游核心区的275英亩地产将通过Concierge Auctions无保留地拍卖出售
  17. 1词法分析PaddleNLP / examples / lexical_analysis
  18. CS231n作业2中Cython相关问题的处理
  19. Wi-Fi Mesh网络技术
  20. Node.js 的微任务处理(基于Node.js V17)

热门文章

  1. 转:20分钟教你使用hexo搭建github博客
  2. clientX和clientY属性需要注意的地方
  3. ACM竞赛常用STL(二)之STL--algorithm
  4. python屏幕的交互(读取输出信息)input,raw_input的区别
  5. 使用QuickCHM软件轻松编译CHM格式的文件
  6. CSS 图片上下部与边框有间隙
  7. Android对性能要求,Android性能管理
  8. 电子科技大学研究生计算机与科学,2019年电子科技大学计算机科学与工程学院考研复试分数线...
  9. 辨析*P++,*(p++),*(++p),++(*p),*(P--),*(--P)
  10. 启动访问kibana