JDBC连接8.0或以上版本mysql

您所在的位置:网站首页 需要安装flash10及以上版本 JDBC连接8.0或以上版本mysql

JDBC连接8.0或以上版本mysql

2024-01-09 20:16| 来源: 网络整理| 查看: 265

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");这里是固定写法

2.通过DriverManager获取数据库连接 获取数据库连接的具体方式如下:

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

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

3.通过Connection对象获取Statement对象 Connection创建Statement的方式有如下3种:

createStatement():创建基本的Statement对象prepareStatement():创建prepareStatement对象prepareCall():创建CallableStatement对象

以创建基本的Statement对象为例,创建方式如下: Statement stmt = conn.createStatement();

4.使用Statement对象执行SQL语句 所有的Statement都有如下3中执行SQL语句的方法:

execute():可以执行任何SQL语句executeQuery():通常执行查询语句,执行后返回代表结果集的ResultSet对象executeUpdate():主要用于执行DML和DDL语句。执行DML语句,如insert、update、delete时,返回受SQL语句影响的行数,执行DDL语句返回0。 String sql = "select * from users"; //这里的sql语句可以改 stmt = conn.createStatement(); rs = stmt.executeQuery(sql); //结果集

5.操作ResultSet结果集 如果执行的SQL语句是查询语句,执行结果将返回一个ResultSet对象,该对象里保存了SQL语句的查询结果。程序可以通过操作该ResultSet对象来取出查询结果。 6.关闭连接,释放资源。

至此,JDBC程序的大致实现步骤以及完成。

下面放一个查询数据的完整代码: 该程序从之前我们已经建好的表users中读取数据,并将结果打印在控制台。

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, "[email protected]"); // 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; } } }

运行结果: 在这里插入图片描述 可以看到,这与我们之前在命令行中访问到的结果相同: 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3