java修炼中,配置IDEA连接mysql,使用DataGrip,IDEA执行SQL语句

提示:进行java处理数据库的简单例子

文章目录

  • 前言
  • Hello JDBC
    • 配置idea和数据库MYSQL
    • 使用DataGrip
  • IDEA执行SQL语句
      • 初始化和连接数据库
      • 执行SQL语句,插入100条数据,并在DataGrip查看


前言

在银行实习后了解到JAVA开发,决定日后走上这条路,开始对java前后端进行学习,这里是对学习的一些记录,主要是自用,当然,也希望可以解决到你的问题。
博客新手,有问题就还请大家多包含,如有相同兴趣的小伙伴也欢迎一起讨论学习!

Hello JDBC

根据前期进行的一系列java学习后,目前到达了java数据库连接(Java Data Base Connectivity)这一过程。在之前的一些摸索中,其实已经有学习过一些MYSQL的皮毛,在这里也还算得心应手。本篇博客将包括:

  • 配置idea和数据库
  • 使用DataGrip(可替代navicatmysql-front
  • java连接数据库,并执行SQL语句

配置idea和数据库MYSQL

首先请去官网下载MYSQL,推荐下载较新版本,8.0以上,因为之后的一些操作语句会和之前较低版本不同。这个过程笔者较久远之前就弄过了,可以另外搜索一下,网络都挺多教程的。

之后,默认你有idea,再去官网下载MYSQL驱动包,MYSQL驱动包下载网址
java修炼中,配置IDEA连接mysql,使用DataGrip,IDEA执行SQL语句_第1张图片

点击后出现下图,一般官网会给予最新版本的驱动下载,但是驱动需要和你电脑中的MYSQL版本一致,不知道自己的版本请控制台进入mysql后输入SELECT VERSION();查询。
然后点击Archives,点击这个按钮之后可以查找到以前的版本驱动,而不是右边的Looking for…这里需要注意一下。
java修炼中,配置IDEA连接mysql,使用DataGrip,IDEA执行SQL语句_第2张图片
在第一行下拉栏里选择对应的版本,第二栏选择Platform independentjava修炼中,配置IDEA连接mysql,使用DataGrip,IDEA执行SQL语句_第3张图片
加载出下载选项后,选择下载后缀为zip的文件,下载完毕后,解压复制其中的jar文件至idea目录下的lib文件夹。请注意,只需要后缀为jar的文件,例如名为mysql-connector-java-8.0.17.jar

接下来打开IDEA,依次点击File、Project Structure…
java修炼中,配置IDEA连接mysql,使用DataGrip,IDEA执行SQL语句_第4张图片
按图继续点击,直到最后的JARS or …然后选择之前放在IDEA路径lib文件夹下的jar文件即可。
java修炼中,配置IDEA连接mysql,使用DataGrip,IDEA执行SQL语句_第5张图片
按上述配置之后,点击ok,若工程目录下多出了类似下图的文件,则说明配置成功。若不成功看看是否是选择错了文件,或者选择了压缩包而不是jar文件。在这里插入图片描述

使用DataGrip

按照教学的安排,当IDEA配置好MYSQL后,就可以进行相关的操作了,但对于数据库内部数据的可视化,更新后的结果等,不是很方便的查看。因为笔者教程较老,推荐使用的是使用mysql-front,软件很小巧,界面也很干净,还有中文版,是一款非常不错的免费软件。使用过程中频繁报错,经过查询之后发现是因为该软件已经很久没有更新,对新的MYSQL会报错。无奈之下只能换软件,看到网上通常都推荐使用navicat,同样有着很多优秀的功能,也十分小巧方便,但是是一款收费软件,不过也不贵。最后在破解navicat软件的帖子里看到有人推荐DataGrip,发现这是IDEA,Pycharm的兄弟,一家公司的产品,由于对IDEA和Pycharm的用户体验都十分满意,所以我毫不犹豫就选择了DataGrip。
(实际上IDEA和Pycharm都可以对MYSQL进行操作)
和IDEA类似,成功并安装DataGrip后即可使用。
对DataGrip的一些简单配置在这里就不赘述了,值得一提的是,如果点击Test Connection报错,显示与serverTimezone相关的警告,这是因为8.0版本之后都需要对时区进行设置,切换到Advanced,然后找到serverTimezone,设置为Hongkong(或其他):java修炼中,配置IDEA连接mysql,使用DataGrip,IDEA执行SQL语句_第6张图片

IDEA执行SQL语句

最后是使用IDEA连接数据库,执行SQL语句,并使用DataGrip查看数据库的内容

初始化和连接数据库

请注意,在mysql8.0之后和以前代码相比,这里有两个不同的地方:
一.初始化的时候,8.0之后使用com.mysql.cj.jdbc.Driver(之前使用com.mysql.jdbc.Driver)。
二.连接数据库时,8.0之后需要设置时区serverTimezone=Hongkong

        try {
            //Class.forName("com.mysql.jdbc.Driver");适用于mysql8.0之前
            Class.forName("com.mysql.cj.jdbc.Driver");//使用mysql8.0之后
            System.out.println("数据库驱动加载成功 !")
            Connection c = DriverManager.getConnection(
                            "jdbc:mysql://127.0.0.1:3306/buaa?useSSL=false&serverTimezone=Hongkong",
                            "root", "123");//新版本需要指定时区,servertimezone为时区
  
            System.out.println("连接成功,获取连接对象: " + c);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

执行SQL语句,插入100条数据,并在DataGrip查看

使用IDEA进行数据库的连接,并执行SQL语句,插入100条数据,直接贴出完整代码。

package jdbc;
/*
@Author:Heize
使用idea操作mysql的整个流程,增加100条数据。
@Date:2020/9/2 16:14
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class Test {
    public static void main(String[] args) {
        Connection c = null;
        Statement s = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            //连接数据库
            c = DriverManager.getConnection(
                            "jdbc:mysql://127.0.0.1:3306/buaa?useSSL=false&serverTimezone=Hongkong",
                            "root", "123");
                            //新版本需要指定时区,servertimezone为时区

            //创建一个statement对象
            s = c.createStatement();

            //执行SQL语句,最后的分号可有可不有
            for(int i=0;i<100;i++){
                String sql = "insert into hero values(null,"+"'欧杀队"+i+"号'"+","+(100.0+i*i)+","+(100+i*2)+")";
//                System.out.println(sql);
                s.execute(sql);
            }
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            //数据库的连接是有限资源,相关操作结束后,养成关闭数据库的好习惯
            if (s != null)
                try {
                    s.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            if (c != null)
                try {
                    c.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
        }
    }
}

DataGrip中的结果:java修炼中,配置IDEA连接mysql,使用DataGrip,IDEA执行SQL语句_第7张图片
后续或许会更新一些关于DataGrip的使用心得。

你可能感兴趣的:(java,mysql,java,jdbc)