当前课程知识点:数据库系统原理与开发 > 第6章 数据库应用编程 > 6.1 数据库连接技术 > 6.1.2 数据库连接技术-2
同学们好 我是数据库主讲教师陈安龙
今天我们学习数据库连接技术(JDBC)
本节的主要内容
我们要大家了解什么是JDBC
要掌握数据库JDBC的层次结构
理解应用程序使用JDBC访问数据库的步骤
掌握Java使用JDBC连接数据库的方法
我们下面看一下什么是JDBC
JDBC是数据库的JAVA连接技术的简称
意思是JDBC是JAVA语言用于连接数据库的一种中间件
类似ODBC的作用 是一种用于执行SQL语句的Java API
它由一组用Java编程语言编写的类和接口组成
这个API由java.sql.*包中的一些类和接口组成
它为数据库开发人员提供了一个标准的API
使他们能够用纯Java API 来编写数据库应用程序
大家注意
使用JDBC访问数据库需要相应数据库的JDBC驱动程序
我们下面来看一下JDBC的工作原理
JDBC要来访问数据库
应用程序首先通过JDBC的API来访问数据库驱动程序
从上面往下面看
我们的应用程序是用JAVA语言开发的
JDBC API是JDBC的接口层
它是由以前的SUN公司或者是现在的ORACLE公司编写的
因为JAVA已经被ORACLE公司收购了
然后我们的应用程序来调用数据库JDBC的驱动程序
数据库驱动程序是由数据库厂商提供的
比如说ORACLE数据库是由ORACLE公司提供的
SQL SERVER数据库是由微软公司提供的
通过驱动程序来访问我们的数据库
下面看一下 JDBC程序访问数据库步骤
首先 我们的应用程序开始时
要导入JAVA.SQL包到JAVA程序里面
然后我们要加载并且注册驱动程序
注册完之后
我们要创建数据库的连接对象connection对象
创建完connection连接对象之后
我们要创建Statement语句对象
这个语句对象主要用于执行我们的SQL语句
然后使用Resultset对象返回结果
这时 返回结果交给应用程序来处理
处理结束之后
我们就可以关闭ResultSet对象
关闭Resultset对象后
需要关闭Statement对象
我们要关闭Connection对象
最后结束我们的应用程序
我们下面来看
第一步 我们加载驱动程序
加载JDBC驱动是通过调用Class.forName("驱动名字")方法
括号里面是我们要加载的驱动程序的名字
比如说 我们要加载PostgreSQL数据库驱动程序
我们就可以通过这样的一种形式Class.forName括号
里面的驱动程序名要用双引号
postgreSQL驱动程序org.postgresql.Driver要用双引号引起来
然后我们要建立数据库之间的连接
建立数据库之间的连接要调用调用DriverManager方法
getConnection(String url)来建立数据库的连接
下面我们看一下PostgreSQL建立连接的语句
首先我们要定义URL字符串
这个字符串主要指明要建立连接的数据库
jdbc:postgresql指明是PostgreSQL数据库
localhost是指主机名 5432是端口号 testdb是数据库名
第二 定义用户名myuser
myuser是预先在数据库里定义好的用户
该用户名字叫myuser
第三 我们用户Password定义用户的口令
假设该用户的口令是sa
然后我们就可以创建或者是建立与数据库之间的连接
连接对象用connection定义
我们定义为conn
后面我们使用DriverManager.getConnection的方法
里面有三个参数
第一个参数就是我们前面声明的字符串URL
指明数据库所在的服务器
第二个是我们要连接的用户名
是刚才声明的userName
然后指定它的passWord口令
这样我们就建立了与数据库的连接
连接的名字叫conn.
第三步 我们要创建Statement对象
我们可以用Connection对象的方法
方法的名字是createStatement
可以创建Statement对象
大家看一下对象的定义
前面我们定义的对象名stmt等号后面
用我们刚才定义的连接conn调用createStatement方法
我们就建立了与刚才的数据库的连接
该连接是用myuser身份连接到数据库的
也就是我们就可以访问testDB数据库
接下来我们就要执行SQL语句
就是用我们刚才创建的Statement对象来调用对应的方法
在这我们主要要掌握的(executeQuery)
和(executeUpdate)这两个方法
executeQuery:返回语句执行后的单个结果集的
也就是执行查询后的记录集
通常里面是select语句
executeUpdate返回值是一个整数
它是指执行语句是修改数据库里的记录
或者是插入记录 删除记录
返回是一个整数 它代表的是修改了多少条记录
插入数据库时插入了多少条记录
删除数据库记录时删除了多少条记录
现在我们看一下这个示例
我们要执行数据库的语句
就需要用createStatement创建一个Statement对象
然后 定义一个字符串
这个字符串就是对数据库的操作语句
比如说 查询语句 插入数据的语句
在这是插入数据的语句
是要向student表插入一条记录
该语句需要用双引号引起来
是以字符串的形式存入sql变量中
然后我们执行更新
我们用对象stmt调用executeUpdate
参数是操作数据库的字符串变量sql
下面我们给大家介绍ResultSet用来保存结果集
ResultSet对象用来保存操作的数据库结果集
它代表符合SQL语句条件的所有行
通过一套get开始的方法来访问其中的数据
ResultSet里的数据一行一行排列
每行有多个字段
并且有一个记录指针
指针所指的数据行叫做当前数据行
我们只能来操作当前的数据行
我们如果想要取得某一条记录
就要使用ResultSet对象的next方法来访问所需的记录
如果我们想要得到ResultSet里的所有记录
就必须使用while循环语句来访问
下面给出这三行示例代码
第一行定义了一个语句对象stmt
用conn.createStatement创建语句对象
接下来我们定义一个查询
是从company表中查询出公司的ID号
名称 以及年限
第三句定义了ResultSet类型的结果集rs对象
结果集对象里的数据是语句对象
调用executeQuery执行sql的select语句
得到的结果集
存到ResultSet对象rs里
第六步 当数据库处理完之后
我们就要关闭数据库的连接
通常作为一种好的编程风格
在不需要某些对象时
比如ResultSet对象 或者语句对象Statement对象
数据库连接对象Connection对象
在不需要时 就应该通过语句关闭它
这些对象提供了方法close关闭它
例如 rs.close关闭结果集对象
stmt.close关闭执行对象
conn.close关闭连接对象
大家要注意 我们一旦关闭了这些对象后
就不能再使用它
在Eclipse下使用JDBC连接数据库
首先第一步要从官网下载JDBC驱动程序包
这里我下载驱动程序包是 postgresql-42.2.2.jar
下载驱动程序包之后
要在Eclipse中创建工程 PostgreSQL
然后在PostgreSQL工程中创建jdbclib目录
并将驱动程序jar包拷贝到该目录下
并在工程中做如右图的做如下配置
第一步进入到PostgreSQL工程的属性
打开窗口后
有一个Java Build Path,点进去之后
右边出现窗口
进入到Libraries的tab里
然后添加jar包 点击按钮 添加jar包
点击应用关闭按钮后
这样就配置好了
下面给出JAVA使用JDBC连接数据库的完整例子
我们这个程序是在Eclipse下调试通过的
第一句是指明该Java程序所在包是testDB下
下面要用import导入java.sql驱动程序包
接下来是我们自己定义的类JDBCDemoDB
这是我做的连接数据库的示例程序
主程序main是程序入口
下面定义conn对象 stmt对象
URL连接串
Classes.forName注册驱动程序
用DriverManager调用getConnection方法创建数据库连接
有三个参数
URL是数据库服务器的信息 用户名 口令
如果连接成功
system.out.println输出提示信息
但是注意
前面用了try用于捕获Java语句执行产生的异常
下面用createStatement创建连接对象
定义sql查询字符串
从student表查询出学生信息
然后用Statement对象来执行
执行的结果存放到结果集rs里
下面是循环 通过循环的方式显示查询结果
把结果集中的每一条记录依次显示出来
下面把结果集的字段值转化为字符串
这四个字段都是字符型
要以字符类型显示
使用完之后就要关闭语句对象stmt
用conn.close关闭连接
catch后面是异常处理
如果前面某些语句出现异常错误
它就会捕获异常信息
并将错误信息显示出来。
我们的核心语句是数据库的连接
这个程序执行的结果
显示了student表中的学生的信息
包括学生的编号 姓名 性别 所在班级编号
今天的课就讲到这里
-1.1 数据库及其系统概念
-1.2 数据库技术发展
-1.3 数据库应用系统
-1.4 典型数据库管理系统
-1.5 PostgreSQL对象-关系数据库系统软件
-第1章 数据库系统概论--本章单元测试
-2.1 关系及其相关概念
-2.2 关系模型原理
-2.3 PostgreSQL数据库关系操作实践
-第2章 数据库关系模型--本章单元测试
-3.1 SQL语言概述
-3.2 数据定义SQL语句
-3.3 数据操纵SQL语句
-3.4 数据查询SQL语句
-3.5 数据控制SQL语句
-3.6 视图SQL语句
-3.7 PostgreSQL数据库SQL实践
-第3章 数据库操作SQL语言--本章单元测试
-4.1 数据库设计概述
-4.2 E-R模型方法
-4.3 数据库建模设计
-4.4 数据库规范化设计
-4.5 数据库设计模型SQL实现
-4.6 基于Power Designer的数据库设计建模实践
--4.6 基于Power Designer的数据库设计建模实践
-第4章 数据库设计与实现--本章单元测试
-5.1 数据库管理概述
-5.2 事务管理
--5.2 事务管理
-5.3 并发控制
-5.4 安全管理
-5.5 数据库备份与恢复
-5.6 PostgreSQL数据库管理项目实践
-第5章 数据库管理--本章单元测试
-6.1 数据库连接技术
-6.2 数据库存储过程
-6.3 数据库触发器
-6.4 数据库游标
-6.5 嵌入式SQL编程
-第6章 数据库应用编程--本章单元测试
-7.1 NoSQL数据库概述
-7.2 列存储数据库
-7.3 键值对数据库
-7.4 文档型数据库
-7.5 图形数据库
-7.6 HBase数据库项目实践
-第7章 NoSQL数据库技术--本章单元测试
-期末测试--期末测试