*为什么用JDBC
JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力
*JDBC工作原理
-JDBC API
提供者:Sun公司
内容:供程序员调用的接口与类,集成在java.sql和javax,sql包中,如:
DriverManager 类
Connection 接口
Statement 接口
ResultSet 接口
-DriverManager
提供者:Sun公司
作用:管理各种不同的JDBC驱动
-JDBC驱动
提供者:数据库厂商
作用:负责连接各种不同的数据库
-JDBC API主要功能:与数据建立连接、执行SQL语句、处理结果
DriverManager :依据数据库不同,管理JDBC驱动
Connection :负责连接数据库并担任传送数据的任务
Statement :由Connection产生,负责执行SQL语句
ResultSet:负责保存Statement执行后产生的查询结果
-JDBC驱动
JDBC驱动由数据库厂商提供
在个人开发与测试中,可以使用JDBC-ODBC桥连方式
在生产型开发中,推荐使用纯Java驱动方式
-使用JDBC-ODBC桥方式连接数据库
将对JDBC API的调用,转换为对另一组数据库连接API的调用
优点:可以访问所有ODBC可以访问的数据库
缺点:执行效率低、功能不够强大
-使用纯Java方式连接数据库
由JDBC驱动直接访问数据库
优点:100% Java,快又可跨平台
缺点:访问不同的数据库需要下载专用的JDBC驱动
-JDBC访问数据库的步骤
加载JDBC驱动
与数据库建立连接
创建Statement或PreparedStatement对象
发送SQL语句,并得到返回结果
处理返回结果
释放资源
遍历结果集中数据可使用列号或列名标识列
PreparedStatement比Statement提高了代码的可读性和可维护性,提高了SQL语句执行的性能,提高了安全性。
*数据库
1.数据库
数据库(DB)存放数据的仓库,只不过这些数据存在一定的关联,并按一定的格式存放在计算机。从广义上讲,数据不仅包含数字,还包括了文本、图像、音频、视频等。
2.数据库管理系统
数据库管理系统(DBMS)是管理数据库的系统,它按一定的数据模型组织数据。DBMS应提供如下功能:
(1)数据定义功能可定义数据库中的数据对象。(数据库、表、视图、存储过程)
(2)数据操纵功能可对数据库表进行基本操作,如插入、删除、修改、查询
(3)数据的完整性检查功能保证用户输入的数据应满足相应的约束条件
(4)数据库的安全保护功能保证只有赋予权限的用户才能访问数据库中的数据
(5)数据库的并发控制功能使多个应用程序可在同一时刻并发地访问数据库的数据
(6)数据库系统的故障恢复功能使数据库运行出现故障时进行数据库恢复,以保证数据库可靠运行
(7)在网络环境下访问数据库的功能
(8)方便、有效地存取数据库信息的接口和工具。编程人员通过程序开发工具与数据库的接口编写数据库应用程序。数据库管理员(DBA,DataBase Adminitrator)通过提供的工具对数据库进行管理。
数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台和与数据库有关的人员一起构成了一个完整的数据库系统。
*数据库分类
数据库有类型之分,是根据数据模型划分的。目前成熟应用在数据库系统中的数据模型有:
层次模型:以树形层次结构组织数据。
网状模型:每一个数据用一个节点表示,每个节点与其他节点都有联系,这样数据库中的所有数据节点就构成了一个复杂的网络
关系模型:以二维表格(关系表)的形式组织数据库中的数据
面向对象数模型
*常见的数据库
MySql,Oracle-甲骨文
Sybase SQL
Server 微软
DB2 IBM
*数据库应用系统
1.ODBC数据库接口
ODBC即开放式数据库互连(Open DataBase Connectivity),是微软公司推出的一种实现应用程序和关系 数据库之间通信的接口标准。符合标准的数据库就可以通过SQL语言编写的命令对数据库进行操作,但只针对关系数据库
2.ADO数据库接口
ADO(ActiveX Data Object)是微软公司开发的基于COM的数据库应用程序接口,通过ADO连接数据库,可以灵活地操作数据库中的数据。
3.ADO.NET数据库接口
ADO.NET数据模型从ADO发展而来,但它不只是对 ADO的改进,而是采用了一种全新的技术。
4.JDBC数据库接口
在JDBC API中有两层接口:应用程序层和驱动程序层,前者使开发人员可以通过SQL调用数据库和取得结果,后者处理与具体数据库驱动程序的所有通信。
5.数据库连接池技术
对于网络环境下的数据库应用,由于用户众多,使用传统的JDBC方式进行数据库连接,系统资源开销过大成为制约大型企业级应用效率的瓶颈,采用数据库连接池技术对数据库连接进行管理,可以大大提高系统的效率和稳定性.
*结构化查询语言
-SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被称为关系型数据库管理系统的标准语言。
-SQL语句可以用来执行各种各样的操作,例如更新数据库中数据,从数据库中提取数据等。 目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。
-结构化查询语言包含6个部分
1.数据查询语言(DQL:Data Query Language):
其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAⅥNG。这些DQL保留字常与其他类型的SQL语句一起使用。
2.数据操作语言(DML:Data Manipulation Language):
其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。
3.事务处理语言(TPL):
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
4.数据控制语言(DCL):
它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
5.数据定义语言(DDL):
其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
6.指针控制语言(CCL):
它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。
*数据完成性约束
-主键约束
主键就是表中的一列或多个列的一组,其值能唯一地标志表的每一行。通过定义PRIMARY KEY约束来创建主键,而且PRIMARY KEY约束中的列不能取空值。
-非空约束 NOT NULL
-唯一性约束
在关系模型中,替代键像主键一样,是表的一列或一组列,它们的值在任何时候都是唯一的。替代键是没有被选做主键的候选键。定义替代键的关键字是UNIQUE。
-参照完整性约束