Presentation is loading. Please wait.

Presentation is loading. Please wait.

西南科技大学网络教育系列课程 动态网页设计(JSP) 第七章 JSP中数据库的使用.

Similar presentations


Presentation on theme: "西南科技大学网络教育系列课程 动态网页设计(JSP) 第七章 JSP中数据库的使用."— Presentation transcript:

1 西南科技大学网络教育系列课程 动态网页设计(JSP) 第七章 JSP中数据库的使用

2 数据库应用开发简介 作为有效的数据存储和组织管理工具,数据库的应用日益广泛
目前主流的数据库产品有Oracle、SQL Server、DB2和SyBase等多种。 在数据库开发领域中,有三个方面需要掌握:SQL语言、ODBC数据访问接口和JDBC数据库访问接口。

3 SQL语言概述 SQL(Structured Query Language)是关系型数据库的标准语言,是由国际标准组织提出的,各种关系型数据库都支持SQL指令,Oracle在基本的SQL基础上进行了扩充。 SQL语句有如下的两大特点 (1)SQL是一种类似于英语的语言,很容易理解和书写。 (2)SQL语言是非过程化的语言(第四代语言)。 SQL集DDL(Data Definition Language:数据定义语言),DML(Data Manipulation Language:数据操作语言)和DCL(Data Control Language:数据控制语言)于一体。用SQL语言可以实现数据库生命周期的全部活动。

4 ODBC数据访问接口 开放式数据库互连ODBC(Open DataBase Connectivity)是微软公司开发的一套开发数据库系统应用程序接口规范,它支持应用程序以标准的ODBC函数和SQL语句操作各种不同的数据库。

5 JDBC数据访问接口 为支持Java程序的数据库操作功能,Java语言采用了专门Java数据库编程接口(JDBC,Java DataBase Connectivity),用于在Java程序中实现数据库操作功能并简化操作过程。JDBC支持基本SQL语句,提供多样化的数据库连接方式,为各种不同的数据库提供统一的操作界面

6 SQL语句分类 SQL分类 描述 数据定义语言 (DDL)
数据定义语言(DDL)用于定义、修改或者删除数据库对象,如Create Table等 数据查询语言 (DQL) 数据查询语句(Data Query Language,DQL)用于对数据进行检索。如最常用的Select语句 数据操纵语言 (DML) 数据操纵语言(DML)用于访问、建立或者操纵在数据库中已经存在数据,如Select、Insert、Update和Delete等等。 事务控制语言 (TCL) 事务控制语言(Transact Control Language)管理DML语句所做的修改,是否保存修改或者放弃修改。如:Commit、Rollback、Savepoint、Set Transaction等命令。 数据控制语言 (DCL) 数据控制语言(DCL)管理对数据库内对象的访问权限和授予和回收,如Grant、Revoke等等。

7 基本SQL语句 基本的SQL语句包括DQL和DML。也就是对数据库最常用的四大基本操作:查询(Select)、插入(Insert)、更新(Update)和删除(Delete)

8 查询语句 SELECT 字段名 FROM 数据表 WHERE 筛选条件
SELECT * FROM grade WHERE数学=80 or 语文=90 SELECT * from userTable where user_age in {20,22,25} SELECT * from userTable where user_name like ‘王%’ SELECT * from userTable where user_name is null

9 DML的基本格式 基本语法:DELETE FROM 数据表 WHERE 条件 例:DELETE from grade WHERE 数学=0
(2)UPDATE指令:更新数据记录。 基本语法:UPDATE 数据表 SET 字段值=新值 WHERE条件 例1:UPDATE grade SET 数学=数学+10 说明:将grade表中所有人的成绩加10分 例2:UPDATE grade SET 数学=100 WHERE 姓名 like '%敏%' 功能说明:将姓名中含有敏的人的数学成绩更新为100分

10 INSERT INTO指令 (3)INSERT INTO指令:添加数据记录。
基本格式1:INSERT INTO 数据表 VALUES (字段新值) 基本格式2:INSERT INTO 数据表(字段一,字段二,……) VALUES (字段新值) 其中关键字两种格式的区别是:当values含有数据库表所有字段的值,并且顺序和数据库字段一致时,就可以省略数据库表后面的字段名称。 例1:INSERT INTO grade(学号, 姓名, 数学) VALUES (1234, '周润发',70) 例2:INSERT INTO grade VALUES (5678, '周润发',70,80,90) 功能说明:该语句等价于: INSERT INTO grade(学号, 姓名, 语文, 数学, 英语) VALUES (5678, '周润发',70,80,90)

11 JDBC的四种类型 目前,比较常见的JDBC驱动程序可分为以下4种类型:
(1)JDBC-ODBC桥加ODBC驱动程序:JDBC-ODBC桥产品利用ODBC驱动程序提供JDBC访问。在服务器上必须可以安装ODBC驱动程序。 (2)本地API:这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。 (3)JDBC网络纯Java驱动程序:这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。 (4)本地协议纯Java驱动程序:这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。 第3类和第4类驱动程序将成为JDBC访问数据库的首选方法。第1类和第2类驱动程序在直接的纯Java驱动程序还没有上市前会作为过渡方案来使用。

12 ODBC数据源 ODBC配置

13 数据驱动程序 使用JDBC的第一步是安装驱动程序。大多数数据库都有JDBC驱动程序,常用的JDBC驱动程序如图所示。

14 Driver 连接数据库前先要加载驱动程序 import java.sql.*
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Class.forName(“jdbc.driver_class_name”); com.microsoft.jdbc.sqlserver.SQLServerDriver org.gjt.mm.mysql.Driver Oracle.jdbc.driver.OracleDriver

15 Connection对象 建立是建立与数据库之间的连接,也就是创建一个Connection的实例。DriverManager类的getConnection()方法将建立数据库的连接: public static Connection getConnection(String url, String user, String password) throws SQLException 在程序的最后,应该关闭Connection对象: public void close() throws SQLException SQL Server下的URL: jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=xx

16 Connection接口的方法 public Statement createStatement() throws SQLException
public void commit() throws SQLException public Statement createStatement() throws SQLException public boolean getAutoCommit() throws SQLException public CallableStatement prepareCall(String sql) throws SQLException

17 Statement对象 Statement对象用于将SQL语句发送到数据库中。 存在3种Statement对象: (1)Statement;
(2)PreparedStatement(从Statement继承而来); (3)CallableStatement(从PreparedStatement继承而来)。

18 Statement接口 Statement接口提供了两种执行SQL语句的常用方法: public ResultSet executeQuery(String sql) throws SQLException 用于产生单个ResultSet的语句,例如SELECT语句。 public int executeUpdate(String sql) throws SQLException 用于执行INSERT、UPDATE或DELETE语句以及SQL DDL语句,例如CREATE TABLE和DROP TABLE。该方法返回一个整数,指示受影响的行数。

19 ResultSet对象 int getInt(int columnIndex),取得当前行中第columnIndex列的整数的值。
ResultSet包含符合SQL语句执行结果所有行,并且它通过一套get方法提供了对这些行中数据的访问,常用的get方法有: int getInt(int columnIndex),取得当前行中第columnIndex列的整数的值。 int getInt(String columnName),取得当前行中列名为columnName的整数的值。 其他方法: getDate(int columnIndex) getDate(String columnName) getString(int columnIndex) ,getString(String columnName) ResultSet维护指向其当前数据行的光标,让光标向下移动一行的方法是: public boolean next() throws SQLException

20 利用While循环获取数据表中所有记录 利用ResultSet对象在建立时,记录指针指向第一条记录之前,结合ResultSet对象提供的next方法,在while循环中移动记录指针,向下逐条地将数据库中的记录依次获取,在移动到记录的最后一条,由next方法返回值false来结束循环。 语法结构: while(rs.next()) { rs.getXXX(“字段名称”); …… }

21 结果集类型 结果集类型有3种: ResultSet.TYPE_FORWORD_ONLY:指定ResultSet对象是不可滚动,这是默认值。
ResultSet.TYPE_SCOLL_INSENSITIVE:指定ResultSet对象是可滚动的,但是对数据库中修改不敏感。 ResultSet.TYPE_SCOLL_SENSITIVE:指定ResultSet对象是可滚动的,而且对数据库的修改敏感。

22 修改对结果集的影响 是 否 类型 看到内部更新 看到内部删除 看到内部插入 看到外部更新 看到外部删除 看到外部插入 只向前 可滚动不敏感
可滚动敏感

23 结果集的并发性 结果集的并发性(Concurrency)决定ResultSet对象是否可以修改数据库中的行。可以使用ResultSet类中定义的int常量来指定结果集的并发性。 ResultSet.CONCUR_READ_ONLY,指定ResultSet对象不能修改数据库,默认值。 ResultSet.CONCUR_UPDATABLE,指定ResultSet对象可以修改数据库

24 总结:JDBC访问数据库基本方法 数据访问基本格式 Class.forName("JDBC驱动程序");
Connection conn=DriverManager.getConnection("相应JDBC驱动程序的连接串); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery("DQL语句");//如果是数据查询 stmt.executeUpdate("DML语句");//如果是数据操作


Download ppt "西南科技大学网络教育系列课程 动态网页设计(JSP) 第七章 JSP中数据库的使用."

Similar presentations


Ads by Google