MySQL+IDEA实现JDBC连接

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YaboSun/article/details/81045517

参考:
MySQL JDBC Driver 5.1.33 - Time Zone Issue
MySQL Connectors Java下载及使用
win10系统,mysql-installer-community-5.7.21.msi安装

环境

WIndows10+MySQL8.0+IDEA2017.3Enterprise

MySQL安装

这部分详细不多说,详细参考以上所列文章,需要注意的地方就是,在选择安装类型步骤时,如果不想安装其他组件,可以选择Custom 安装,这里安装其实可以勾选上Connector/J 也就是MySQL通过Java连接数据库的驱动,方便后面添加这个库;另外就是一定要记住自己安装时的密码!!!
所有步骤安装完成以后,可以看到如下目录
这里写图片描述
这时候点击MySQL 8.0 Command Line Client
则会进入命令行模式
这里写图片描述
这时候输入我们之前创建的密码
这里写图片描述
接下来就可以输入简单的SQL命令来使用数据库了,比如查询所有的数据库
这里写图片描述

创建IDEA项目

第一步在IDEA中新建工程
选择Java类型,设置ProjectSDK,接着输入工程名称和存放位置,即可生成一个Java项目
第二步 添加依赖jar包
点击File->Project Structure->Libraries ,再点击绿色的加号,在之前MySQL安装路径下可以找到mysql-connector-java-8.0.11
这里写图片描述
确定即可,这里如果默认安装路径的话就是在C:\Program Files (x86)\MySQL\Connector J 8.0
另外,如果之前在安装MySQL时候没有选择Connector\J 也可以到官网下载然后直接导入,结果是一样的。
成功导入以后就可以在工程的External Libraries 看到多出来的
这里写图片描述

通过JDBC连接数据库

在之前创建的项目src 文件夹下新建类Main 在类中实现连接数据库,代码如下:

 /**
     * 使用JDBC连接University数据库
     */
    public static Connection getConnection() throws Exception{
        Connection conn = null; // 创建一个connection

        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/University?"
                    + "user=YaboSun&password=root"
                    + "&useUnicode=true&characterEncoding=UTF8"
                + "&useLegacyDatetimeCode=false&serverTimezone=UTC";
            conn = DriverManager.getConnection(url);
        } catch (ClassNotFoundException e) {
            System.out.println("JDBC Driver not found");
            e.printStackTrace();
        } catch (SQLException e) {
            System.out.println("SQL 执行错误");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

功能测试

已经建立了一个连接,接下来就是测试以下是否连接成功,并实现数据库的增、删、查、改等简单操作
在主函数中实现对应功能进行测试,代码如下:

public static void main(String[] args) throws Exception{
        String sql; // 用于后面对应不同的sql语句
        Connection connection = getConnection(); // 获取一个connection
        /**
         * 创建一个statement
         * Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除
         * executeQuery可以实现查询
         */
        Statement statement = connection.createStatement();

        sql = "create table Test(Tno char(11), Tname char(20), Tage int)";
        int updateResult ; // 用于获取是否创建成功 如果不成功结果为-1
        try {
            updateResult = statement.executeUpdate(sql);
            if (updateResult != -1) {
                sql = "INSERT INTO Test VALUES ('20131002318', '本科', 19)";
                updateResult = statement.executeUpdate(sql);
                sql = "INSERT INTO Test VALUES ('1201721379', '硕士', 23)";
                updateResult = statement.executeUpdate(sql);
                sql = "SELECT * FROM Test";
                ResultSet resultSet = statement.executeQuery(sql); // executeQuery会返回结果的集合,否则返回空值
                while (resultSet.next()) {
                    String Tno = resultSet.getString("Tno");
                    String Tname = resultSet.getString("Tname");
                    int Tage = resultSet.getInt("Tage");
                    System.out.println(Tno + " " + Tname + " " + Tage);
                }
            }
        } catch (SQLException e) {
            System.out.println("Test表已经存在");
            e.printStackTrace();
        }
        sql = "DROP TABLE Test";
        updateResult = statement.executeUpdate(sql);
        System.out.println("Test表已经删除");
        connection.close();
    }

这里写图片描述
得到正确结果

这只是简单的进行一些测试,代码的优化还需要很大改进,如有不正确之处,望能指出。

猜你喜欢

转载自blog.csdn.net/YaboSun/article/details/81045517