JDBC—02—jdbc的使用流程; ResultSet 讲解
一、 JDBC 的使用
通过反射机制加载数据库驱动程序 → 使用DriverManager建立数据库连接 Connection → 创建执行SQL的语句Statement → 处理执行结果 ResultSet → 释放资源
拓展: jdbc启动流程: 1、注册驱动 2、获取连接 3、执行sql 4、处理结果(查询操作,需要用resultSet这个游标处理) 5、释放资源 mybatis启动流程: 1、加载核心配置文件 2、构建工厂 3、打开session(接口绑定时,打开session后,还要打开mapper) 4、执行sql 5、释放资源
使用JDBC要导入两个jar 包:
1、jdbc 的jar包,这里面主要定义了java.sql.Driver接口的属性和方法
2、mysql-connect-java的jar包,这里主要定义了对Driver接口的实现类,这个实现类也叫数据库驱动,不同数据库的数据库驱动是不一样的。
1.下载数据库驱动
1.1MySQL 驱动
https://dev.mysql.com/downloads/connector/j/
由于我的MySQL是8.0.17的,所以要安装8.0的JDBC;
我们选择platform independent(独立于平台), 然后选择.ZIP Archive格式即可;
下载完成后, 我们把jar包提取出来, 放到eclipse的项目中的lib文件夹, 然后build path就可以使用JDBC了!
2.创建项目添加驱动
3.通过 Statement 向表中插入数据
//注册驱动(通过反射,调用数据库驱动类;)
//获取连接
"jdbc:数据库类型://数据库存储位置:数据库端口号/连接哪一个数据库?数据库编码格式", "用户名", "密码"
"jdbc:mysql://localhost:3306/test2?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone =GMT","root"."root"
//执行 SQL
//释放资源
4.Statement 对象修改表中的数据
5.封装 JDBC 工具类
5.1普通版
- 什么是封装呢?就是把公有的、每个类都会用的方法提取出来,封装到一个新的类中;而这次,我们就是要把公有的方法封装到JDBCUtil工具类中;
- static代码块的代码制只在类初始化时被执行一次;
- 一般这个类的方法都是static的, 方便使用类名直接调用;
5.1.1工具类代码
5.2升级版
5.2.1工模具类代码
(1)properties文件如何创建:
就是普通的file, 只要把文件后缀改为.properties就可;
(2)properties文件注意:
- 创建位置要和 `包` 同级, 即都放在src目录下;
- 文件内容是 `键=值` 形式;
- .properties是文本文件, 所以没有必要给值添加双引号和分号;
- 使用getBundle()引用文件时, 没有必要写后缀, 只要写文件名称即可;
6.通过 Statement 对象查询数据
6.1代码
//使用statement对象增删改查数据,
//查询 Departmetns 表中部门 ID 为 1 的部门信息
二、ResultSet
1.ResultSet 讲解
我们去数据库查询数据时, 返回的结果都在数据库内存中存着呢, 返回的resultset只是一个指针, 它指向了数据库的内存,
通过next(), 我们可以不断的指向下一块内存, 然后使用get方法读取内存中的数据, 然后直至全部内存都被指到;
(注意 ResultSet 中封装的并不是我们查询到的所有的结果集,而是返回了查询到的结果集的数据库游标。通过 ResultSet 中的 next()方法操作游标的位置获取结果集。)
2.通过 ResultSet 实现逻辑分页
物理分页:物理分页依赖的是某一物理实体,这个物理实体就是数据库,比如MySQL数据库提供了limit关键字,程序员只需要编写带有limit关键字的SQL语句,数据库返回的就是分页结果。比如limit(5,3),就是从第五条数据开始查,一共查三条数据,limit()控制了结果集的数量。
逻辑分页:并不控制结果集的数量,所有的结果集都返回在内存中,但是使用逻辑分页选取部分结果集达到一个返回部分结果集的效果,即逻辑分页。