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/——官网下载太慢了,下载后是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>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>8.0.16version>
        dependency>
  • 手动下载,添加jar包:https://static.runoob.com/download/mysql-connector-java-8.0.16.jar
  • 不会使用maven,或者添加jar包的,参考这篇文章:JAVA【基础】 IDEA导入jar包的几种方式

配置:

一 开启mysql服务

win10左下角,输入 cmd 先别急着回车!,等待搜索到命令提示符后,右键,以管理员身份运行。

JAVA【基础】jdbc 连接 MYSQL 8.0+ 从安装到使用——搭建开发环境_第1张图片
输入 net start mysql80 开启mysql服务 ,mysql80是安装的时候,设置的服务名。
输入 net stop mysql80 关闭mysql服务 。
如下图所示:
JAVA【基础】jdbc 连接 MYSQL 8.0+ 从安装到使用——搭建开发环境_第2张图片
如果不使用管理员身份开启,会造成以下错误。

在这里插入图片描述
开启mysql服务后就可以关闭cmd框,然后开始写代码了。

二 连接代码参数设置

  • MYSQL8.0+使用jbdc的连接,与以往版本的不同
连接 MYSQL8.0+
forname Class.forName(com.mysql.cj.jdbc.Driver
URL设置时区 serverTimezone=UTC
  • 上面2个参数不设置好会报ClassNotFoundException的异常
  • 通常情况下连接url设置成这样即可
  • jdbc:mysql://localhost:3306/mysqlname?useSSL=false&serverTimezone=UTC
url参数 说明
localhost localhost是本机地址127.0.0.1
:3306 端口名,是mysql开启的服务,如果上述(配置一)的mysql服务未开启,会报com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure 的异常
mysqlname 数据库的名字,如果没有此数据库会报SQLSyntaxErrorException: Unknown database 'xxx',的异常
useSSL=false 在web领域要用到,指是否开启ssl安全连接,但MySQL 8.0 以上版本不需要建立 SSL 连接,需要关闭。
serverTimezone=UTC 设置时区,不设置会报错

实战:

这里博主提前准备好了一个数据库,名字是skeleton,里面有一张user表
结构
JAVA【基础】jdbc 连接 MYSQL 8.0+ 从安装到使用——搭建开发环境_第3张图片

会用到的方法 说明
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字段的值
import java.sql.*;//导包
//新建一个测试类
public class MyJDBC {

    String mysqlname="skeleton";//数据库名
    String user = "root";//使用管理员账号启动
    String pwd = "skeletonmysql";//数据库密码
    String URL = "jdbc:mysql://localhost:3306/"+mysqlname+"?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();
            }
        }
    }
}

运行结果
JAVA【基础】jdbc 连接 MYSQL 8.0+ 从安装到使用——搭建开发环境_第4张图片


以上就是本文内容,以后遇到更多知识将会补充。

你可能感兴趣的:(JAVA,【基础】)