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

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

JSP 与数据库 SQL 语言简介 SQL 语言简介 JDBC 简介 JDBC 简介 使用 JDBC 连接数据库 使用 JDBC 连接数据库 访问数据库 数据库访问应用举例.
第十章 Java 数据库编程. 内容提要 数据库有关概念; 介绍 JDBC 的结构; 重点介绍 JDBC 访问几种数据库的基本过程;
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
项目八 用户注册系统 信息工程系 杜向然. 技能目标  掌握利用 JDBC 对数据库的访问、更新等操作,实现基本数 据库程序设计知识目标  了解 JDBC 的概念功能、意义及体系结构;  掌握使用 DriverManager 、 Connection 、 PreparedStatement 、
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
7.1 Java的数据库编程 Java中专门设置了一个java.sql包,定义了很多用来实现SQL功能的类,使用这些类,编程人员就可以很方便地开发数据库前端的应用。 因为SQL是一种直接对数据库进行操作的非过程扫描语言,不适合整个数据库应用程序的前端编程,所以需要其他语言来实现SQL语言的功能以完成对数据库的操作。
第14章 JDBC技术和数据库开发应用.
十一 ASP对数据库的访问.
第2讲 Transact-SQL语言.
配合< JSP程序设计>例子源代码一起使用
MVC Servlet与MVC设计模式.
项目6公司数据信息检索.
第12章 JDBC数据库应用程序设计.
(第11讲) Mysql 简介和创建新的数据库 本讲大纲: 1、MYSQL简介与概要 2、访问MYSQL的几种途径
資料庫 (Database) SQL Server 2008實作
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
第十一讲 JDBC JDBC基础 JDBC驱动程序 JDBC编程 示例.
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
文科计算机小公共课规划教材 Access 程序设计.
计算机应用基础 上海大学计算中心.
Oracle数据库 Oracle 子程序.
数据库应用与程序设计.
第15章 Java数据库连接(JDBC) 15.1 创建数据源 15.2 JDBC-ODBC桥接器 15.3 顺序查询
J2EE与中间件技术 ——Lab.
JAVA 程式設計與資料結構 第十一章 JDBC.
11-1 JDBC的基礎-說明 昇陽公司提出的資料庫中介軟體(Middleware)稱為「JDBC」(Java Database Connectivity),這是一種開放標準的Java程式介面,可以讓Java程式連接資料庫管理系統, 以Java技術來說,就是實作JDBC驅動程式介面(JDBC Driver.
第六章 學習SQL語言.
JDBC 数据库系统与应用 2014年.
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
課程名稱:資料庫系統 授課老師:李春雄 博士
JAVA vs. SQL Server 建國科技大學 資管系 饒瑞佶 2013/4 V1.
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
Chap 10 SQL定義、操作與控制指令.
胡鹏 王慧锋 TEL: 数据库系统原理课程设计 实验环节1 胡鹏 王慧锋 TEL:
資料庫安全 (Database Security)
崑山科技大學資訊管理系 伺服網頁程式設計 系統開發細部流程 教師:游峰碩.
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
2018/11/23 面向对象与多线程综合实验-数据库操作 教师:段鹏飞.
Transact-SQL 語言設計教學.
第6章 ADO.NET数据访问接口 6.
5 数据库管理与保护 数据库运行的最小逻辑工作单位是事务,所有对数据库的操作,都以事务作为一个整体来执行或撤销。
SQL Injection.
第五章 認識 SQL語言與 資料型別.
医院职工公费医疗系统.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
数据库基础 1.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
4、按钮事件.
SQL Server 2000数据库 简明教程 李存斌 主编 下一页.
第十三章 JDBC  JDBC简介  JDBC驱动类型  JDBC API  JDBC的发展.
第 7 章 JDBC数据库访问.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
第一章 数 据 库 概 述 第一节 引言 第二节 数据库基本概念 第三节 数据库系统结构 第四节 数据模型 第五节 数据库管理系统
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
SQL 范引娣.
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
SQL查询语句 蔡海洋.
VB与Access数据库的连接.
第三章 SQL Server数据管理.
数据库系统与应用实验 基于SQL Server 2005.
第十八章 資料庫與Access 課前指引 在日常生活中,無論各位到銀行開戶、醫院掛號或是到學校註冊,一定都會填寫所謂的個人資料,裡面通常包括姓名、性別、生日、電話、住址等項目,所以人們建立了各種不同的列表來儲存及組織這些資料。 人們當初試圖建造電腦的主要原因之一就是可用來儲存及管理一些數位化資料清單與資料,這也是資料庫觀念的由來。尤其在資訊科技發達的今日,日常的生活已經和資料庫產生密切的結合。例如目前最熱門的網路拍賣,如何讓千萬筆交易順利完成,或者透過手機記錄著他人電話號碼,並能分類與查詢電話。
Visual Basic程序设计 第13章 访问数据库
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
VB与Access数据库的连接.
WEB程序设计技术 数据库操作.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
数据库应用技术 天津电大 翟迎建.
Presentation transcript:

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

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

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语言可以实现数据库生命周期的全部活动。

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

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

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等等。

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

查询语句 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

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分

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)

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驱动程序还没有上市前会作为过渡方案来使用。

ODBC数据源 ODBC配置

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

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

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

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

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

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。该方法返回一个整数,指示受影响的行数。

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

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

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

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

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

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