18.数据库操作
数据库系统是由数据库、数据库管理系统和应用系统、数据库管理员构成。
数据库管理系统简称DBMS,是数据库系统的关键组成部分,包括数据库定义、数据查询、数据维护等。
而JDBC技术是连接数据库和应用程序的纽带。
18.1数据库基础知识
如今现在常用的高级数据库有SQL Server、MySQL、Oracle等。
18.1.1什么是数据库
数据库是一种存储接口,允许使用各种格式输入、处理和检索数据。主要特点如下:
1.数据共享。所有用户可同时存取数据库中数据。
2.减少数据冗余度。相比文件系统,避免用户格子间里应用文件。
3.数据独立性。数据库逻辑结构和应用程序相互独立,物理结构变化不影响数据的逻辑结构。
4.数据集中控制。利用数据库可以对数据集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
5.数据的一致性和可维护性。(安全性控制、完整性控制、并发控制、故障的发现和恢复。
数据库的基本结构分为三个层次:
1.物理数据层:数据库最内层,物理存储设备上实际存储的数据集合。
2.概念数据层:数据库中间层,数据库的整体逻辑表示,指出了每个数据的逻辑定义及数据间的逻辑联系,存储记录的集合。
3.逻辑数据层:用户所看到和使用的数据库,一个或一些特定用户使用的数据集合,即逻辑记录的集合。
18.1.2数据库的种类及功能
数据库系统一般基于某种数据模型,可以分为层次型、网状型、关系型及面向对象型,目前最流行的是关系型。
以MySQL为例,MySQL数据库是开发源代码的软件,具有功能性墙、使用简便、管理方便、运行速度快、安全可靠性强等优点,MySQL是具有客户机/服务器体系结构的分布式数据库管理系统,也是一个完全网络化的跨平台关系型数据库系统。
MySQL在UNIX/Linux系统上以多线程方式运行,在Windows NT上以系统服务运行,在Windows95/98上以普通进程方式运行。
从JDK6开始,JDK的安装目录中新增加了一个db的目录,即Java DB。这是要给纯Java实现的、开源的数据库关系系统(DBMS),源于Apache软件基金会(ASF)名下的项目Derby。
18.1.3SQL语言
SQL(Structure Query Language,结构化查询语言)被广泛地应用于大多数数据库中,依赖于关系模型。SQL语言主要由以下几部分组成:
1.数据定义语言(Data Definition Language,DDL)如create、alter、drop等。
2.数据操纵语言(Data Manipulation Language,DML)如select\insert\update\delete等。
3.数据控制语言(Data Control Language,DCL),如grant、revoke等。
4.事务控制语言(Transaction Control Language),如commit、rollback等。
其中DDL是最常用的SQL语言,介绍如下:
1.select语句
SELECT 所选字段列表 FROM 数据表名
WHERE 条件表达式 GROUP BY 字段名 HAVING 条件表达式(指定分组的条件)
ORDER BY 字段[ASC|DESC]
2.insert语句
insert into 表名[(字段名1,字段名2...)]
values(属性值1,属性值2...)
3.update语句
UPDATE 数据表名 SET 字段名=新的字段值 WHERE 条件表达式
4.delete语句
delete from 数据表名 where 条件表达式
18.2JDBC概述
JDBC是用来执行SQL语句的API(Application Programming Interface,应用程序设计接口),是连接数据库和java应用程序的纽带。
18.2.1JDBC-ODBC桥
JDBC-ODBC桥是一个JDBC驱动程序。完成了从JDBC操作到ODBC操作之间的转换工作,允许JDBC驱动程序用作ODBC的驱动程序,使用JDBC-ODBC桥连接数据库的步骤如下:
(1)首先加载JDBC-ODBC桥的驱动程序,代码如下:
Class.forName("sum.jdbc.JdbcOdbcDriver");
Class类是java.lang包中的一个类,通过该类的静态方法forName()可加载sun.jdbc.odbc包中的JdbcOdbcDriver类来建立JDBC-ODBC桥连接器。
(2)使用java.sql包中的Connection接口,并通过DriverManager类的静态方法getConnection()创建连接对象。代码如下:
Connection conn=DriverManager.getConnection("jdbc:odbc:数据源名字","user name","password");
数据源必须给出一个简短的描述名。加入没有设置user name和password,则要与数据源tom交换数据。建立Connection对象的代码如下:
Connection conn=DriverManager.getConnection("jdbc.odbc:tom",""."");
(3)向数据库发送SQL语句。使用Statement接口声明一个SQL语句对象,并通过刚才创建的链接数据库对象的conn的createStatement()方法创建这个SQL对象,代码如下:
Statement sql=conn.createStatement();
JDBC-ODBC桥作为链接数据库的过渡性技术,现在已经不再流行,但由于ODBC技术被广泛使用,使得Java可以利用JDBC-ODBC桥访问几乎所有的数据库。
JDBC-ODBC桥作为sun.jdbc.odbc包与JDK一起自动安装,无需额外配置。
18.2.2JDBC技术
JDBC全称是Java DataBase Connectivity,指定了同一的访问各种关系数据库的标准接口。
JDBC是一种底层的API,因此访问数据库时需要在业务逻辑层中镶入SQL语句。
JDBC不能直接访问数据库,必须依赖于数据库厂商提供的JDBC驱动程序。
JDBC总体结构由4个组件组成:应用程序、驱动程序管理器、驱动程序、数据源。
JDBC技术主要用来完成以下几个任务:
(1)与数据库建立一个连接。
(2)向数据库发送SQL语句。
(3)处理从数据库返回的结果。
18.2.3JDBC驱动程序的类型
JDBC驱动程序基本上分为4种:JDBC-ODBC桥、本地API、JDBC网络驱动、本地协议驱动。
其中JDBC网络驱动和本地协议驱动时JDBC访问数据库的首选。
18.3JDBC中常用的类和接口
java.sql包中定义了常用的访问和处理数据库的类。
18.3.1Connection接口
Connection接口代表与特定的数据库连接,在连接上下文中执行SQL语句并返回结果。
方法 | 功能描述 |
---|---|
createStatement() | 创建Statement对象 |