JDBC连接MySQL

JDBC-MySQL

一、介绍

JDBC(Java DataBase Connectivity java数据库连接)是JAVA官方提供的一套接口,用于连接并操作数据库。
不同的数据库厂商都提供了一套JDBC的实现类,并以jar包形式发布,用于使我们的程序可以通过这套实现类来操作其数据库,这套jar称为”驱动”。我们无需记住这些数据库提供商提供的JDBC实现类的名字,只要使用JDBC接口看待它们即可,以多态形式调用它们来操作数据库。

二、JDBC接口

1、DriverManager

DriverManager是实现类,用于加载数据库驱动,并与数据库连接连接,成功建立后产生Connection

2、Connection接口

表示与数据库的连接,负责管理事务,创建Statement实例

3、Statement接口

负责执行SQL语句

4、ResultSet接口

查询结果集

三、连接步骤

1、加载类库(驱动jar包)到JVM

mysql-connector-java 5:com.mysql.jdbc.Driver

mysql-connector-java 6以上 :com.mysql.cj.jdbc.Driver

Class.forName("com.mysql.cj.jdbc.Driver");

2、加载驱动建立连接

2.1、useUnicode=true&characterEncoding=UTF-8作用
  • 存数据时:数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。

  • 取数据时:在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。

2.2、useSSL表明是否使用SSL连接
  • useSSL=true:是
  • useSSL=false:否
//JDBC驱动名及数据库URL
static final String jdbc_DRIVER = "com.mysql.cj.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/test?" +
                                "userUnicode=true&" +
                                "characterEncoding=utf-8&" +
                                "useSSL=false";

//账号和密码
static final String username = "root";
static final String password = "123456";
Connection conn = DriverManager.getConnection(DB_URL, username, password);

3、创建Statement

Statement state = conn.createStatement();

4、通过Statement执行SQL语句

4.1、int executeUpdate(String sql)

专门用来执行DML语句的方法,返回值是一个整数用来表示执行了该DML语句后影响了表中多少条数据。

4.2、ResultSet executeQuery(String sql)

专门用来指定DQL语句的方法,返回值为查询结果集。

4.3、boolean execute(String sql)

所有SQL语句都可以执行,但由于DML、DQL有专门的方法,所以该方法一般用来执行DDL语句。返回值为true时说明执行后有返回值,但是若执行不是DQL语句,其他类型语句执行后返回值都是false。

String sql = "CREATE TABLE userinfo( "+
                         "  id NUMBER(6), "+
                         "  username VARCHAR2(32), "+
                         "  password VARCHAR2(32), "+
                         "  email VARCHAR2(50), "+
                         "  nickname VARCHAR2(32), "+
                         "  account NUMBER(10,2) " +
                         ")";
state.execute(sql);

5、若执行的是DQL语句,则会得到查询结果集Result,遍历该结果集得到查询内容。

6、关闭连接

conn.close();

四、注意

一、依赖版本版本

如果依赖使用6以上版本但Class.forName还是使用com.mysql.jdbc.Driver代码执行会出现如下信息

Loading class 'com.mysql.jdbc.Driver'. This is deprecated. The new 
driver class is 'com.mysql.cj.jdbc.Driver'. 
The driver is automatically registered via the SPI 
and manual loading of the driver class is generally unnecessary.

解决方法:将com.mysql.jdbc.Driver更换为com.mysql.cj.jdbc.Driver或把依赖mysql-connector-java版本降低到6以下

二、MySQL版本

MySQL 5.5.45+, 5.6.26+ and 5.7.6+版本默认要求建立SSL连接 可以通过useSSL=false禁用SSL连接,否则会出现如下警告

WARN: Establishing SSL connection without server’s identity verification is not recommended. 
According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection 
must be established by default if explicit option isn’t set. 
For compliance with existing applications not using SSL the verifyServerCertificate property is set tofalse’. 
You need either to explicitly disable SSL by setting useSSL=false, 
or set useSSL=true and provide truststore for server certificate verification.

参考

MySQL 5.5的jar包是用于访问和操作MySQL数据库的Java驱动程序。这个jar包包含了所有必需的类和方法,使得在Java应用程序中能够连接MySQL数据库,并执行各种数据库操作,例如查询、插入、更新和删除数据。 MySQL 5.5的jar包是一个开源项目,由MySQL官方提供。它被广泛用于Java开发环境中,提供了一种方便的方式来与MySQL数据库进行交互。通过将这个jar包添加到Java项目的依赖中,我们可以使用简单的代码来连接MySQL数据库,执行SQL语句,并获取返回的结果。 MySQL 5.5的jar包是根据JDBCJava Database Connectivity)规范开发的,这是Java平台和数据库之间进行交互的标准接口。它通过实现JDBC API,提供了一套方法和类,使得开发人员能够在Java应用程序中使用统一的方式来访问不同类型的数据库。 在使用MySQL 5.5的jar包时,我们首先需要在Java项目中引入这个jar包。具体的方式可以通过将它添加到项目的classpath中,或者使用构建工具(如Maven)来管理依赖关系。然后,我们需要在代码中加载MySQL驱动程序,并使用合适的URL、用户名和密码来建立与MySQL数据库的连接。 一旦建立了连接,我们就可以使用连接对象来创建Statement或PreparedStatement,并通过它们执行SQL语句。执行后,我们可以通过调用相应的方法来获取结果集,并对结果进行处理。例如,可以使用ResultSet对象来遍历查询结果,获取所需的数据。 总之,MySQL 5.5的jar包是一个重要的工具,使得Java开发人员能够方便地与MySQL数据库进行交互。它提供了一套API,使得在Java应用程序中连接MySQL数据库,并执行各种数据库操作变得更加简单和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值