
JAVA【基础】jdbc 连接 MYSQL 8.0+ 从安装到使用——搭建开发环境
目录准备:知识MYSQL8.0+:mysql-connector-java的jar包:配置:一 开启mysql服务二连接代码参数设置实战:准备:知识java基础mysql 基础idea 软件基础(狗头保命)MYSQL8.0+:本文章使用的是mysql8.0.16进行教程官网下载:https://dev.mysql.com/downloads/installer/——官网...
·
准备好以下:
知识:
- java基础
- mysql 基础
- idea 软件基础
(狗头保命)
MYSQL8.0+:
本文章使用的是mysql8.0.16进行教程
- 官网下载:https://dev.mysql.com/downloads/installer/——官网下载太慢了,下载后是msi文件,需要安装。
- 腾讯软件下载:https://pc.qq.com/detail/3/detail_1303.html ——我是在这下的最新mysql,亲测可用,下载后是msi文件,需要安装
- MYSQL8.0.16安装,以及配置 教程:MYSQL 【基础】mysql从安装到使用
mysql-connector-java的jar包:
- maven添加jar包依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
- 手动下载,添加jar包:https://static.runoob.com/download/mysql-connector-java-8.0.16.jar
- 不会使用maven,或者添加jar包的,参考这篇文章:JAVA【基础】 IDEA导入jar包的几种方式
配置:
一 开启mysql服务
win10左下角,输入 cmd 先别急着回车!,等待搜索到命令提示符后,右键,以管理员身份运行。
输入 net start mysql80
开启mysql服务 ,mysql80是安装的时候,设置的服务名。
输入 net stop mysql80
关闭mysql服务 。
如下图所示:
如果不使用管理员身份开启,会造成以下错误。
开启mysql服务后就可以关闭cmd框,然后开始写代码了。
二 jdbc链接
通常情况下连接url设置成这样即可协议名://IP地址:端口号/数据库名?参数1&参数2&...
例如jdbc:mysql://localhost:3306/databaseName?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8
详解:
参数 | 说明 |
---|---|
jdbc:mysql | 协议 |
localhost:3306 | localhost是本机地址127.0.0.1 , 3306 端口名,是mysql开启的服务,如果上述(配置一)的mysql服务未开启,会报 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure 的异常 |
databaseName | 数据库的名字,如果没有此数据库会报SQLSyntaxErrorException: Unknown database 'xxx' ,的异常 |
useSSL=false | 在web领域要用到,指是否开启ssl安全连接,但MySQL 8.0 以上版本不需要建立 SSL 连接,需要关闭。 |
serverTimezone=UTC | 设置时区 |
characterEncoding=UTF-8 | 设置编码格式,不设置很可能造成乱码。 |
实战:
这里博主提前准备好了一个数据库,名字是skeleton,里面有一张user表
结构
会用到的方法 | 说明 |
---|---|
Class.forName() | 返回一个类,作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。 |
DriverManager.getConnection(url, user, pwd) | 返回Connection对象,用于连接数据库 |
connection.createStatement() | 返回Statement对象,用于查询数据库操作 |
statement.executeQuery(str) | 执行查询语句 |
statement.execute(str) | 执行语句,与上面不同的是,update,insert,delete等创建删除型语句,必须用这个函数执行,不然会抛以下异常:java.sql.SQLException: Can not issue data manipulation statements with executeQuery(). |
resultSet.next() | 读取下一行数据 |
resultSet.getString(key) | 获取查询到的数据中,key字段的值 |
- MYSQL8.0+使用jbdc的连接,与以往版本的不同
版本 | 类名 |
---|---|
MYSQL 8.0+ | Class.forName(com.mysql.cj.jdbc.Driver ) |
MYSQL 8.0 以下 | Class.forName(com.mysql.jdbc.Driver ) |
- 上面2个参数不设置好会报
ClassNotFoundException
的异常
import java.sql.*;//导包
//新建一个测试类
public class MyJDBC {
String databaseName="skeleton";//数据库名
String user = "root";//使用管理员账号启动
String pwd = "skeletonmysql";//数据库密码
String URL = "jdbc:mysql://localhost:3306/"+databaseName+"?useSSL=false&serverTimezone=UTC";
String DRIVER = "com.mysql.cj.jdbc.Driver";
public static void main(String[] args) {
MyJDBC myJDBC = new MyJDBC();
myJDBC.connect();
}
public void connect() {
Connection connection = null;
Statement statement = null;
try {
//启动JDBC驱动
Class.forName(DRIVER);
//链接数据库
connection = DriverManager.getConnection(URL, user, pwd);
//查询数据
statement = connection.createStatement();
//mysql语句
String query = "SELECT * FROM User;";
//查询数据
ResultSet resultSet = statement.executeQuery(query);
//展开结果集数据库
while (resultSet.next()) {
// 通过字段检索
String user = resultSet.getString("user");
int pwd = resultSet.getInt("pwd");
int times = resultSet.getInt("times");
// 输出数据
System.out.println("user: " + user);
System.out.println("pwd: " + pwd);
System.out.println("times: " + times);
}
// 完成后关闭
resultSet.close();
statement.close();
connection.close();
//下面是异常处理
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (statement != null)statement.close();
if(connection!=null)connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
运行结果
以上就是本文内容,以后遇到更多知识将会补充。
更多推荐
所有评论(0)