signed

QiShunwang

“诚信为本、客户至上”

JDBC连接8.0或以上版本mysql

2021/6/9 1:29:22   来源:

JDBC连接8.0或以上版本mysql

IDE:idea

预先准备:

1.已安装好8.0或以上版本mysql

2.去mysql官网下载JDBC驱动(jar包)

下载好后我们需要的就是后缀名为jar的文件,如下图(我这里下载的是8.0.20版本)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mGx6mgzR-1623172239028)(https://i.loli.net/2021/06/09/rZm4P3DBe87s1gv.png)]

步骤:

1.新建一个JDBC的项目(其实就是文件夹),我这里取名为myjdbc

2.在myjdbc下新建一个libs文件夹,用来导入连接数据库所需的jar包。把之前下载好的jar包复制到libs目录下,这个需要找到project的路径,再进入libs中复制。注意,这里我放的是我的路径,每个人project存放位置不同,所以读者需要找到自己project所在路径,libs文件夹需要自己创建(刚新建项目时没有libs文件夹,libs的名字也是自己取的,读者也可以使用其他名字)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8bLioxYI-1623172130706)(https://i.loli.net/2021/06/09/Mfg6uD94UN57m3G.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R6xXIOJt-1623172130713)(https://i.loli.net/2021/06/09/fP2ihImYTZJz4DR.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hu9ysFs9-1623172130719)(https://i.loli.net/2021/06/09/BMYQW45VULsvfzq.png)]

将jar包复制到libs文件夹下后,还需要在idea中右击jar包,添加为library才算大功告成。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w6vXUELF-1623172130724)(https://i.loli.net/2021/06/09/l59cB4XRDInhPud.png)]

我这里因为已经添加成library了,所以就不放右击后的截图了。

建立数据库(已经建好库的读者可以忽略):

按win+R输入cmd指令进入命令行程序,输入mysql -u root -p,然后再输入安装mysql时设置的密码,进入mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZYbqM4Pb-1623172130728)(https://i.loli.net/2021/06/09/x5DEavKj2otJ8Hn.png)]

PS:这一步报错的同学可能是没有配置mysql的环境变量,可以去网上搜一下,设置好后再回来

这里放一下常用的mysql指令:

查看当前有哪些数据库:show databases;
创建数据库:create database 数据库名;
创建数据库时设置字符编码:create database 数据库名称 charset utf8;
查看某个数据库的信息:show create database 数据库名;
进入或切换数据库:use 数据库名;
显示当前数据库:select database();
表相关:
查看当前有哪些表:show tables;
创建表:create table 表名(字段1,字段类型,...);
查看表属性信息:show create table 表名;
查询表中的数据:select * from 表名;
插入数据:insert into 表名(字段1,字段2,...) values('','',''...);
删除数据:delete from 表名 where 条件表达式
更新数据:update 表名 set 属性名 = 修改后的值 where 属性名 条件表达式

然后的话mysql安装好后自带四个数据库,这四个数据库不能删。我们新建一个数据库先:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q57zSEhL-1623172781615)(https://i.loli.net/2021/06/09/Gyzvth6FLPHUCTD.png)]

我这里取名为myjdbc,建好后可以用show databases命令查看现在有哪些数据库:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GmB2WRK5-1623172130733)(https://i.loli.net/2021/06/09/PfqlyMeOKDVE4Yu.png)]

注意:除了myjdbc是我们刚刚新建的,其他四个库是本来就有的。

然后用切换数据库指令use 数据库名切换到我们刚建好的数据库myjdbc:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rKjC1bMf-1623172130735)(https://i.loli.net/2021/06/09/6w3XJuyQAt4K9hB.png)]

然后新建一个表users:

create table 表名(字段1,字段类型,...);

再插入数据:

insert into 表名(字段1,字段2,...) values('','',''...);

插入数据后,查询一下数据:

select * from 表名;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NHuKYEij-1623172130736)(https://i.loli.net/2021/06/09/S98m73AVepxTfkz.png)]

然后我们就可以在idea中编写java文件来连接mysql了。

编写java文件

在src目录下新建java文件

1.Class.forName("com.mysql.cj.jdbc.Driver");这里是固定写法

String url = "jdbc:mysql://localhost:3306/myjdbc?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8";
            String username = "root";
            String password = "这里需要改成你自己的密码";

url中3306后面的myjdbc是数据库名,需要改成要连接的数据库名,其他地方不变,直接复制即可。

		Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
			conn = DriverManager.getConnection(url, username, password);
            String sql = "select * from users"; //这里的sql语句可以改
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql); //结果集

以上4步就是核心步骤。

下面放一个查询数据的完整代码:

public static void main(String[] args) throws Exception{
        Connection conn = null;
        Statement stmt = null;
        //PreparedStatement preStmt = null;
        ResultSet rs = null;

        try{
            Class.forName("com.mysql.cj.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/myjdbc?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8";
            String username = "root";
            String password = "root";

            conn = DriverManager.getConnection(url, username, password);
            String sql = "select * from users";
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);

            System.out.println("id\tname\tpassword\temail\tbirthday");
            while(rs.next()){
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String psw = rs.getString("password");
                String email = rs.getString("email");
                String birthday = rs.getString("birthday");
                System.out.println(id + "\t" + name + "\t" + psw + "\t" + email + "\t"
                + birthday);
            }
//            String sql = "insert into users(name, password, email, birthday)"
//                    + "values(?, ?, ?, ?)";

            //1.创建执行sql语句的prepareStatement对象
//            preStmt = conn.prepareStatement(sql);
//            //2.为sql语句中的参数赋值
//            preStmt.setString(1, "zl");
//            preStmt.setString(2, "123456");
//            preStmt.setString(3, "zl@sina.com");
//            preStmt.setString(4, "1789-12-23");
//            //3.执行sql语句
//            preStmt.executeUpdate();
        }
        catch (Exception e){
            e.printStackTrace();;
        }
        finally {
            if(rs != null){
                try {
                    rs.close();
                }
                catch (Exception e){
                    e.printStackTrace();
                }
                rs = null;
            }
            if(stmt != null){
                try {
                    stmt.close();
                }
                catch (Exception e){
                    e.printStackTrace();
                }
                stmt = null;
            }
//            if(preStmt != null){
//                try {
//                    preStmt.close();
//                }
//                catch (Exception e){
//                    e.printStackTrace();
//                }
//                preStmt = null;
//            }
            if(conn != null){
                try {
                    conn.close();
                }
                catch (Exception e){
                    e.printStackTrace();
                }
                conn = null;
            }
        }


    }

运行代码即可对mysql进行相关操作。