【Java】JDBC连接MySQL驱动
获取驱动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.jar ,mysql-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驱动相关推荐
- java JDBC连接MySQL数据库调用存储过程进行查询
java JDBC连接MySQL数据库调用存储过程进行查询 主程序代码 工具类 文件信息 存储过程 结果截图 主程序代码 package Mysql;import util.JDBCUtils; im ...
- Java JDBC 连接MySQL数据库方法(IJ版)
Java JDBC 连接MySQL数据库方法(IJ版) 首先说一下IJ建立项目步骤: 1.新建一个Empty Project 2.新建一个Module 3.在src里新建一个Package 4.在Pa ...
- Java jdbc连接mysql 封装类
Java jdbc连接mysql 封装类 开发工具与关键技术:java. myelipse2017.jdk1.8 作者:Amewin 撰写时间:2019年5月26日 JDBC简介: JDBC全称为ja ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- JAVA JDBC连接mysql编程
JDBC连接mysql编程 基本操作 package jdbc;import java.sql.Statement; import java.util.Scanner; import java.sql ...
- java jdbc 连接mysql数据库,Java 通过JDBC连接Mysql数据库
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...
- jdbc连接mysql驱动包_jdbc连接数据库驱动包
FineReport如何用JDBC连接阿里云ADS数据库 在使用FineReport连接阿里云的ADS(AnalyticDB)数据库,很多时候在测试连接时就失败了.此时,该如何连接ADS数据库呢? 我 ...
- java JDBC连接mysql
下载驱动包:http://dev.mysql.com/downloads/connector/j/,解压得到jar文件,例如mysql-connector-java-8.0.11.jar 在项目下新建 ...
- jdbc连接mysql驱动方式_JDBC连接数据库系列教程 – JDBC注册驱动的常见方式
方法1 DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver(),2); 方法2 System.s ...
最新文章
- 圆角有边框背景色时,背景色溢出问题
- python操作系统-Python操作系统
- Java虚拟机垃圾收集器初步学习
- 在游戏中强制关机,不能对关机提示框进行操作
- Unix command to find CPU Utilization
- 数学建模学习笔记——分类模型
- jvm内存模型和java内存模型_JVM运行时内存模型综述
- c语言下标法与指针法,《C和指针》中关于指针与下标的问题
- 并发编程中,你加的锁未必安全
- php echo nbsp,关于include里面的函数echo的问题
- 1.2 编程语言选择 | 排行榜、对比、现状,java c++语言对比,哪个工资高、难度更高,mysql数据库对比,java入门怎么学
- 【数论】Pollard-Rho 算法总结
- 小学生课外必读书目(推荐)
- SAP BASIS ADM100 中文版 Unit 7(1)
- Error starting userland proxy: listen tcp4 0.0.0.0:8005: bind: address alrea
- 位于法国诺曼底旅游核心区的275英亩地产将通过Concierge Auctions无保留地拍卖出售
- 1词法分析PaddleNLP / examples / lexical_analysis
- CS231n作业2中Cython相关问题的处理
- Wi-Fi Mesh网络技术
- Node.js 的微任务处理(基于Node.js V17)
热门文章
- 转:20分钟教你使用hexo搭建github博客
- clientX和clientY属性需要注意的地方
- ACM竞赛常用STL(二)之STL--algorithm
- python屏幕的交互(读取输出信息)input,raw_input的区别
- 使用QuickCHM软件轻松编译CHM格式的文件
- CSS 图片上下部与边框有间隙
- Android对性能要求,Android性能管理
- 电子科技大学研究生计算机与科学,2019年电子科技大学计算机科学与工程学院考研复试分数线...
- 辨析*P++,*(p++),*(++p),++(*p),*(P--),*(--P)
- 启动访问kibana