IDEA2020.2用JDBC连接自己的Mysql8.0数据库

怎么在IDEA2020.2中写JAVA代码,用JDBC连接Mysql8.0数据库呢?

        首先先说一下哈,连接个数据库我搜了好多好多的博客文档啥的,去mysql的官网的文档也瞄了,但最终的结果就是,一行一行报错,解决一行就立马报错下一行,然后我人就傻了
        好不容易学会怎么搞,然后我就来发这个博文了

这不是Javaweb项目啊,就普通的Java项目

先准备一些东西吧
第一步就是下载jar包

我在一开始确定要搞JDBC的时候就傻了吧唧地下载了好多好多的jar包
如果想要下载jar包,可以在这个网站上下载:
在这里下载jar包
在要不就去mysql官网上下载啦
点这个进去下载

下面是官网下载的步骤:

如果就这么直接下就是下载的8.0.23
在这里插入图片描述
download应该是啥意思就不用说了吧,tar或者zip都行
在这里插入图片描述

如果想下载历史版本呢,不要那个8.0.23,就选择这个
在这里插入图片描述
在这里插入图片描述
然后就可以开心地等待下载完毕啦在这里插入图片描述
我先前下载了一个8.0.21的版本jar包,理论上应该是没什么问题的,然后我连接了一下我的数据库

惊喜的发现我的数据库版本是8.0.22在这里插入图片描述
然后强迫症使我感觉必须要一一对应,所以我就只搞了个8.0.22的jar包
然后感觉心情都好了

第二步搞一个数据库

用navicat创建了一个 test数据库
在这里插入图片描述
然后又创建了一个名为try
在这里插入图片描述
在这里插入图片描述
随便给点数据好吧
在这里插入图片描述

然后把你下载好的jar文件准备好
在这里插入图片描述
就只要这个玩意,你先把它撸到桌面上或者你自己熟悉的哪个文件夹下,
我是放在H盘下的一个jar文件夹下了
在这里插入图片描述
好了,以上就是准备工作,已经完成了

接下来开始利用IDEA写Java代码连接数据库了

新建项目,这个应该还是会吧!
,
在这里插入图片描述
在这里插入图片描述
然后finish
在这里插入图片描述
创建java类
接着,就把那个jar包搞进来
选择项目结构
在这里插入图片描述
选择模块在这里插入图片描述
在这里插入图片描述
在这里选择依赖
在这里插入图片描述
在这里插入图片描述
然后戳那个+号,选择jars或目录
在这里插入图片描述
然后把那个jar包导进来
在这里插入图片描述
在这里插入图片描述
当你发现这里有那个jar包之后就说明差不多了
在这里插入图片描述

好,接下来就开始写代码了!!!
  • 先需要加载驱动:
    我们这是用的mysql8.0所以是"com.mysql.cj.jdbc.Driver"不是"com.mysql.jdbc.Driver"
Class.forName("com.mysql.cj.jdbc.Driver");
  • 接下来就是获得数据库连接

    url是这样写的

String url1 = "jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
String url2 = "jdbc:mysql://127.0.0.1:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";

以上两个都行
模板是: jdbc:mysql://本机地址:数据库的端口号(默认是3306)/数据库名
在这里我得说一句,我之前认为的数据库名是MYSQL安装时候定的名字,其实不是,是指的是之前在创建数据库的时候的名字,也就是之前的地方我加粗了的那个
useSSL=false 是指不使用SSL加密
useUnicode=true&characterEncoding=utf-8 是指设置编码格式为utf-8
serverTimezone=Asia/Shanghai 是设置时区,有时候不设置它给你报错
用Connection来接收这个参数
username是自己连接数据库的用户名
password是连接时用的密码
这两个都是字符串

Connection connection = DriverManager.getConnection(url,username,password);
  • 然后就开始写sql语句了
    sql语句也是字符串
PreparedStatement statement = connection.prepareStatement("select * from try");
  • 查询
    查询完后会返回一个结果集,然后遍历这个结果集
ResultSet resultSet = statement.executeQuery();
  • 遍历
 while (resultSet.next()){
       System.out.println("id:"+resultSet.getInt("id"));
       System.out.println("name:"+resultSet.getString("name"));
       System.out.println("sex:"+resultSet.getString("sex"));
 }
  • 释放资源
    反着释放资源
resultSet.close();
statement.close();
connection.close();

以上是大致流程,以下是java整个的源码
包括了try catch等

package com.okok;

import java.sql.*;

public class TestJDBC {
    public static void main(String[] args) {
        String url1 = "jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
        String url2 = "jdbc:mysql://127.0.0.1:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
        Connection connection = null;
        PreparedStatement statement = null;
        ResultSet resultSet = null;
        try {

            Class.forName("com.mysql.cj.jdbc.Driver");
			//username和密码别和我写一样的啊
            connection = DriverManager.getConnection(url2,"username","password");
            statement = connection.prepareStatement("select * from try");
            resultSet = statement.executeQuery();
            while (resultSet.next()){
                System.out.println("id:"+resultSet.getInt("id"));
                System.out.println("name:"+resultSet.getString("name"));
                System.out.println("sex:"+resultSet.getString("sex"));
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        finally {
            if(null!=resultSet){
                try {
                    resultSet.close();
                } catch (SQLException exception) {
                    exception.printStackTrace();
                }
            }
            if(null!=statement){
                try {
                    statement.close();
                } catch (SQLException exception) {
                    exception.printStackTrace();
                }
            }
            if(null!=connection){
                try {
                    connection.close();
                } catch (SQLException exception) {
                    exception.printStackTrace();
                }
            }
        }
    }
}

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值