数据库应用

Download Report

Transcript 数据库应用

第六章 数据库应用




6.1
6.2
6.3
6.4
关系数据库基础知识
MySql与Navicat安装与配置
数据库操作语言
JDBC
6.1 关系数据库基础知识
 1.关系(Relation):一个关系就是一个表文件,
对应一张表,每个关系都有一个关系名称。
 2.元组(Tuple):表中的一行数据,称为元组,
通常称为记录。
 3.属性(Attribute):表中的一列数据,通常称
为字段。
 4.关键字(Key):可唯一标识元组的属性或属
性集,通常称为主键。
 5.域(Domain):属性的取值范围,指某个指
定区域的值。
 6.关系模式:对关系的描述。
学号
姓名
性别
年龄
所在系
00001
张三
男
20
计算机系
00002
李四
女
21
农学系
00003
王五
女
19
食品系
0004
赵六
男
22
经管系
6.2 MySql与Navicat安装与配置
 MySql数据库是一个流行的免费开源数据库,
为了方便可视化开发这里还引入Navicat可
视化开发环境。下面就其安装与配置分别进
行讲解。
 在MySql的页面
http://www.mysql.com/downloads/中
提供了MySql数据库的下载。
6.3 数据库操作语言
 6.3.1 数据定义语言
 Create语句:
 Create语句可用来创建数据库和数据表,
创建数据库的语法为:
 Create database <databaseName>
 database是创建数据库的关键字,用来表
示创建的是数据库;databaseName是数
据库的名称。注:<>表示必填项。
 创建数据表的语法为:
 Create table <tableName>(
 col_name1 type [not null | null] [default
default_value] [auto_increment]
 [,col_name2 type [not null | null] [default
default_value] [auto_increment]]
 ……
 [,col_nameN type [not null | null] [default
default_value] [auto_increment]]
 )
 例如:创建一个名为student的数据表
 Create table student (
 id int(4) not null primary key
auto_increment,
 name char(20) not null,
 sex int(4) not null default ‘0’,
 degree double(16,2)
 );
6.3.2 数据操纵语言
 1、insert语句
 insert语句是向数据库表中添加一行数据的
语句,它的语法如下:
 insert into 表名(列名)values(值列表)
 例如:在上面创建的student数据表中添加
一条记录。
 insert into student (name,sex,degree)
values (‘张三’,1,80)
 2、update语句
 update语句用于修改数据库表中特定记录或者字
段的数据,其语法格式如以下代码所示:
 update 表名 set 列名 = 值 where 条件

 例如,在Student表中存储所有学员的信息,如果
想更改学员“张三”的分数为“86”,则已知的条
件为姓名是“张三”,要修改的列为“分数”,希
望修改的值为“86”,那么语句如下:
 Update Student set degree = 86 where
name = '张三'
 3、delete语句
 delete语句可以删除表中的一行或多行记录,其语
法格式如下所示:

 delete from 表名 where 条件
 其中where子句指定将删除的记录应当满足的条件,
where子句省略时,则删除表中的所有记录,这种
删除方式只能删除整行记录,不能删除整列。
 例如,准备删除Student表中姓名为“张三”的学
员,代码如下所示:
 delete from Student where name = '张三'
 4、select语句
 select语句为查询语句,其的语法结构如下
所示:
 select 列名 from 表名 [where 条件
group by 分组列名 having 分组后筛选条
件 order by 排序列名 DESC/ASC]
[limit N]
 例如,从student数据表中取出所有数据
 Select * from Student
6.4 JDBC
 6.4.1 JDBC简介
 JDBC(Java DataBase Connectivity)
是Sun公司提供的一组用来按照统一方式访
问数据库的API。它向程序员提供了独立于
数据库的统一接口,可以使开发人员不必考
虑所用的特定数据库便可编写应用程序,实
现了Java与数据库的互连。
6.4.2 配置JDBC驱动
 1、配置方法1:直接添加外部JAR包。
 首先在要添加JAR包的工程上单击右键,选择
“Build Path”—>“Configure Build Path”,
 在Build Path窗口中选择“Librarys”页
 然后,选择【Add External JARS…】按钮,打
开添加外部JARS包文件对话框,如图6-15所示。
选择相应JAR包文件后点击【打开】,则就把一个
外部JARS包文件添加到了当前工程中来
 配置方式2:添加内部JAR包
 在这种方式中首先在要添加的工程中建立一
个文件夹,例如Libs
 然后复制外部JAR包文件,粘贴到该文件夹
中
 然后选择选择“Build Path”—
>“Configure Build Path”,
 在Build Path窗口中选择“Librarys”页,
 在“Librarys”页中的右侧,选择第一个按
钮【Add JARS…】,弹出“JARS
selection”对话框。在该对话框中找到Libs
文件夹下面的JAR包文件,选择【Ok】,这
样就把一个外部JAR文件添加到了工程中来。
6.4.3 JDBC常用接口
 1、Java.sql.Driver
 读取数据库驱动信息,提供连接方法,建立
访问数据库所用的Connection对象。
 在加载某一驱动类时,它应该创建自己的实
例并注册该实例,完成加载并注册驱动则由
Class.forName()静态方法来完成,其语
法为:
 Class.forName(“JDBC驱动程序类”);
 2、Java.sql.DriverManager
 DriverManager类是java.sql包中用于数据库驱
动程序管理的类,作用于用户和驱动程序之间。其
中有一个重要的方法getConnection()方法。
 Static Connection getConnection(String url,
String user ,String password)
 该方法用来管理Driver对象,连接数据库,注册驱
动程序、获取连接、向数据库发送信息。完成之后
返回一个Connection类型的对象。
 3、Java.sql.Connection
 Connection是用来表示数据库连接对象,
对数据库的一切操作都是在这个连接的基础
上进行的。其常用方法有如下几个:
 Statement createStatement()
 4、Java.sql.Statement
 Statement用于在已经建立的连接的基础上向数
据库发送SQL语句的对象。它只是一个接口的定义,
其中包括了执行SQL语句和获取返回结果的方法。
 Result executeQuery(String sqlQuery)
 执行给定字符串中的SQL语句,并返回一个用于查
询结果的ResultSet对象。
 int executeUpdate(String sqlStatement)
 执行字符串中指定的insert、Update、delete等
SQL语句,还可以执行数据定义语言的语句。
 5、PreparedStatement接口
 java.sql.PreparedStatement接口继承并
扩展了Statement接口,用来执行动态的
SQL语句,即包含参数的SQL语句。
 6、CallableStatement接口
 java.sql.CallableStatement接口继承并
扩展PreparedStatement接口,用来执行
SQL的存储过程。
7、java.sql.Result
Result用来暂时存放数据库查询操作获得的结果集。
boolean next()
将结果集中的当前行向前移动一行。如果已经到达最后一行的
后面,则返回false,否则,返回true。
 Xxx getXxx(int columnNumber)
 当ResultSet已经定位在某一行上时,使用getXxx()方法得
到这一行上单个字段的值。注意,在该方法中,Xxx表述数据
类型(int、String等),针对不同的字段类型,调用不同的
getXxx方法()。




6.4.4 访问数据库








访问数据库的步骤如下:
(1)装载驱动程序。
(2)定义所要连接数据库的地址。
(3)与数据库建立连接。
(4)建立语句对象
(5)声明并执行SQL语句
(6)对结果集进行处理
(7)关闭对象
 1、装载驱动程序
 利用Class.forName(“JDBC驱动程序类”)方
法装载一个数据库的驱动程序
 2、定义所要连接数据库的地址
 此步骤定义所要连接的数据库资源,其通常以字符
串形式给出,把这个连接数据库地址称为连接地址
URL。
 连接地址URL由3部分组成,各个部分之间用冒号
隔开,其格式如下:
 jdbc:<子协议>:<子名称>
 其中,jdbc指的是JDBC的协议是jdbc。
 3、与数据库建立连接
 与数据库建立连接,所使用的是
DriverMamager类的getConnection()
方法。该方法需要3个参数,第一个参数是
连接数据库的地址URL,第二个参数是访问
数据库的名称,第三个参数是访问数据库的
密码。
 4、建立语句对象
 利用Connection接口的createStatement
()方法创建语句对象。
 语句对象将SQL语句发送到相应的数据库,
并获取执行结果,它的返回值是一个
Statement。
 5、声明并执行SQL语句
 声明要执行的SQL语句往往是定义一个String类型
变量,然后将要执行的SQL命令以字符串形式存储
到刚刚声明的String变量中。
 在Statement接口中有3个方法用于执行SQL语句。
 执行查询语句的executeQuery()方法。
 public ResultSet executeQuery(String sql)
throws Exception
 6、对结果集进行处理
 Statement对象负责将SQL语句传递给数据库管
理系统执行,返回一个ResultSet对象。
ResultSet对象称为结果集,是符合条件的所有行
的集合。
 可以通过first()、last()、previous()、
next()、absolute(int i)等方法浏览可滚动
结果集中的内容,也可以通过updateString(int
column,String newValue)方法对结果集中的
内容进行修改,支持多结果集。
 7、关闭对象

最后应当关闭Statement、Connection
和ResultSet对象,这样一方面可以释放资
源;另一方面可以避免数据库长期连接造成
安全上的问题。关闭对象使用close()方
法.