项目八 用户注册系统 信息工程系 杜向然. 技能目标  掌握利用 JDBC 对数据库的访问、更新等操作,实现基本数 据库程序设计知识目标  了解 JDBC 的概念功能、意义及体系结构;  掌握使用 DriverManager 、 Connection 、 PreparedStatement 、

Slides:



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

JDBC 基础知识 第 七 章.  Java 的高级组件 回顾 1 本章相关词汇 单 词说 明 driver 驱动,驱动程序 connection 连接 manager 管理器 statement 语句 prepared 预备的,预编译的 result 结果 create 创建,创造 execute.
JSP 与数据库 SQL 语言简介 SQL 语言简介 JDBC 简介 JDBC 简介 使用 JDBC 连接数据库 使用 JDBC 连接数据库 访问数据库 数据库访问应用举例.
第十章 Java 数据库编程. 内容提要 数据库有关概念; 介绍 JDBC 的结构; 重点介绍 JDBC 访问几种数据库的基本过程;
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
7.1 Java的数据库编程 Java中专门设置了一个java.sql包,定义了很多用来实现SQL功能的类,使用这些类,编程人员就可以很方便地开发数据库前端的应用。 因为SQL是一种直接对数据库进行操作的非过程扫描语言,不适合整个数据库应用程序的前端编程,所以需要其他语言来实现SQL语言的功能以完成对数据库的操作。
第14章 JDBC技术和数据库开发应用.
第2讲 Transact-SQL语言.
四資二甲 第三週作業 物件導向程式設計.
配合< JSP程序设计>例子源代码一起使用
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
MVC Servlet与MVC设计模式.
第12章 JDBC数据库应用程序设计.
資料庫 (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年.
Chapter13 Java数据库连接 授课教师:赵小敏 浙江工业大学 软件学院
第 8 章 資料的 新增、修改與刪除.
2018/11/15 面向对象与多线程综合实验-数据库操作 教师:段鹏飞.
数据库操作示例 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:
崑山科技大學資訊管理系 伺服網頁程式設計 系統開發細部流程 教師:游峰碩.
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
2018/11/23 面向对象与多线程综合实验-数据库操作 教师:段鹏飞.
班級:博、碩子一甲 授課老師:鐘國家 助教:陳國政
5 数据库管理与保护 数据库运行的最小逻辑工作单位是事务,所有对数据库的操作,都以事务作为一个整体来执行或撤销。
SQL Injection.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
4、按钮事件.
第十三章 JDBC  JDBC简介  JDBC驱动类型  JDBC API  JDBC的发展.
第 7 章 JDBC数据库访问.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
CS, ZJU 4/18/2019 Chapter 7 数据库.
SQL 范引娣.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
OceanBase 0.4:从API到SQL 日照
商业分析平台-语义元数据 用友集团技术中心 边传猛 2013年 11月 06日.
VB与Access数据库的连接.
第三章 SQL Server数据管理.
iSIGHT 基本培训 使用 Excel的栅栏问题
Visual Basic程序设计 第13章 访问数据库
Delphi 7.0开发示例.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
VB与Access数据库的连接.
WEB程序设计技术 数据库操作.
使用ADO访问数据库 李宝智 BonizLee 课程 10564A
第4章 数据查询.
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
西南科技大学网络教育系列课程 动态网页设计(JSP) 第七章 JSP中数据库的使用.
JUDDI安装手册.
Presentation transcript:

项目八 用户注册系统 信息工程系 杜向然

技能目标  掌握利用 JDBC 对数据库的访问、更新等操作,实现基本数 据库程序设计知识目标  了解 JDBC 的概念功能、意义及体系结构;  掌握使用 DriverManager 、 Connection 、 PreparedStatement 、 ResultSet 对数据库进行增、删、改、 查操作;项目任务  本项目完成用户注册的最基本功能,要求能实现从键盘输入 用户名和密码后,验证其正确性,单击 “ 注册 ” 按钮,弹出提 示信息 “ 注册成功 ” ;如果用户名或密码错误,弹出 “ 注册失 败 ” ;如果用户名或密码未输入,弹出 “ 用户名或密码不能为 空 ” 。

任务一 装载数据库驱动  public class ConnectionDemo_1{  public static void main(String args[]){  try{  Class.forName(" 驱动名称 ") ;// 加载驱动程 序  }  catch(ClassNotFoundException e){  System.out.println(e.getMessage()) ;  }

 1 . JDBC 简介  JDBC 内嵌于 Java 中,提供了一种与平台无关的用 于执行 SQL 语句的标准 Java API ,可以为多种关系 数据库提供统一访问,它由一组用 Java 语言编写的 类和接口组成。有了 JDBC ,向各种关系数据发送 SQL 语句就是一件很容易的事。换言之,有了 JDBC API ,就不必为访问 SQL Server 数据库专门 写一个程序,为访问 Oracle 数据库又专门写一个程 序,或为访问 DB2 数据库又编写另一个程序等等, 程序员只需用 JDBC API 写一个程序就够了,它可向 不同的数据库发送 SQL 调用。  JDBC 的体系结构如图

 2 . JDBC 驱动的分类  ( 1 ) JDBC-ODBC 桥驱动  在 Windows 操作系统中,可以通过 ODBC 来 无差异的访问数据库,在这种方式里, JDBC 是通过 ODBC 驱动程序来访问数据库服务器 的。  ( 2 ) JDBC 本地驱动  ( 3 ) JDBC 网络纯 java 驱动程序  ( 4 )本地协议纯 JDBC 驱动

 3.装载 JDBC 驱动程序  ( 1 ) JDBC-ODBC 桥连方式  要想使用 JDBC-ODBC 桥来访问数据库,首先要为指定的数 据库建立 ODBC 数据源。步骤如下:  开始 → 控制面板 → 管理工具 → 数据源,打开 ODBC 数据源管 理器 ,根据提示一步步设置完成。  ( 2 )本地协议纯 JDBC 驱动  Microsoft SQL Server2000 数据库提供 JDBC 驱动程序,需 要安装 Microsoft SQL Server2000 JDBC 驱动程序。程序 默认安装路径为: c:\Program Files\Microsoft SQL Server 2000 Driver for JDBC ,安装目录 \lib\ 下的三个 jar 文件即是我 们要的 JDBC 驱动核心 msbase.jar 、 mssqlserver.jar 和 msutil.jar 。它们提供 SQL Server JDBC 驱动程序的类。  因为 SQL Server JDBC 驱动程序是我们单独安装的,所以在 JDK 中运行 JDBC 数据库应用程序时需要将三个 jar 文件加入 到环境变量 classpath 中。

 4. 在应用程序中指定 JDBC 驱动程序  在 JDBC 数据库应用程序中,首先需要指定驱动程序类型。  java.lang.Class 类的 forName ()方法用于指定 JDBC 驱动类 型。  forName ()方法声明如下:  public static Class forName(String className)throws ClassNotFoundExceptionClassString ClassNotFoundException  例如  ( 1 ) SQL Server 指定 JDBC-ODBC 桥驱动时,调用  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver ") ;  ( 2 ) SQL Server 指定 JDBC 驱动程序时,调用  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDr iver ") ;

五、知识拓展  1.JDBC API 的使用  JDBC 的核心是为用户提供 Java API 类库,它 是完全用 Java 语言编写,按照面向对象思想 设计。  JDBC 常用的类和接口

JDBC 常用的类和接口 类及接口功能描述 java.sql.DriverManager 用于管理 JDBC 驱动程序 java.sql.Connection 用于建立与特定数据库的连接,连接建立后便可以执行 SQL 语句并获得检索结果 java.sql.Statement 用于管理和执行 SQL 语句 java.sql.PreparedStateme nt 创建一个可以编译的 SQL 语句对象,该对象可以被多次运 行,以提高执行的效率,该接口是 Statement 的子接口 java.sql.ResultSet 用于存储数据查询返回的结果集 java.sql.Date 用于表示与 SQL DATE 相同的时间标准,该日期不包括时 间 java.sql.Driver 定义一个数据库驱动程序的接口 java.sql.SQLException 对数据库访问时产生的错误的描述信息 java.sql.SQLWarning 对数据库访问时产生的警告的描述信息

 JDBC 驱动程序必须实现的 4 个接口分别是 Driver 、 Connection 、 Statement 和 ResultSet 。 其中, Driver 接口是提供给 JDBC 驱动程序实 现的接口,用于装载和管理 JDBC 驱动程序, 通常在应用程序中我们不直接使用,而是通 过 DriverManager 类使用 Driver 接口提供的功 能;其他 3 个接口在应用程序中是必须使用的。

任务二 连接 / 关闭数据库  public class ConnectionDemo_2{  public static final String DBURL = "jdbc:odbc:test" ; // 定义数据库 的连接地址  public static final String DBUSER = "sa" ; // 定义数据库的连接用户 名  public static final String DBPASS = "sa" ; // 定义数据库的连接密码  public static void main(String args[ ]){  Connection conn = null ;// 数据库连接  try{  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ; // 加载驱动程序  }catch(ClassNotFoundException e){  e.printStackTrace() ;  } 

 try{  conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;  }catch(SQLException e){  e.printStackTrace() ;  }  System.out.println(" 连接成功 ") ;// 如果此时可以打印表示 连接正常  try{  conn.close() ;// 数据库关闭  }catch(SQLException e){  e.printStackTrace() ;  }

相关知识  1.DriverManager 类  管理 JDBC 驱动程序,处理驱动程序的装入, 为新的数据库连接提供支持。驱动程序必须 向该类注册后才可使用。进行连接时,该类 根据 JDBC URL 选择匹配的驱动程序。  DriverManager 的常用方法

DriverManager 的常用方法 方法描述 public static Connection getConnection(String url)throws SQLException 通过连接地址连接数据库 public static Connection getConnection(String url,String user,String password)throws SQLException 通过连接地址连接数据库, 同时需要输入用户名和 密码

 ( 1 ) JDBC URL  URL 表示网络上某一资源的地址。 Java 应用程序需 要使用一个 URL 形式的字符串来获取一个数据库连 接。这个字符串的形式随数据库的不同而不同,但 通常总是以 “jdbc : ” 开始。  JDBC 的 URL 格式 ——jdbc :子协议:数据源  其中, jdbc 表示此 URL 指定的 JDBC 数据源,子协议 表示指定 JDBC 驱动程序的类型,数据源表示指定 的数据源名称。  例如:  ①通过 JDBC-ODBC 桥连接 ODBC 数据源 test :则:  String URL=”jdbc:odbc:test”;

 ②采用微软提供的 SQL Server2000 驱动程序连接 SQL Server2000 :  String URL=”jdbc:Microsoft:sqlserver://localhost:1433;DatabaseN ame=pubs”;  参数含义如下:  localhost: :数据库的地址; 1433 :数据库服务的端口号; pubs :要访问的数据库的名称。  其它具体数据库的 URL 形式可参考驱动程序文档。  ( 2 ) Connection 接口  Connection 接口负责管理 Java 应用程序和数据库之间的连接。 一个 Connection 对象表示对一个特定数据源已建立的一条连 接,它能够创建执行 SQL 的 Statement 语句对象并提供数据 库的属性信息。

Connection 接口的常用方法 方法描述 Statement createStatement() throws SQLException 创建一个 Statement 对象 Statement createStatement(int resultSetType,int resultSetConcurrency) throws SQLException 创建一个 Statement 对象,该对象 将生成具有给定类型和并发 性的 ResultSet 对象 void close()throws SQLException 关闭数据库连接 boolean isClosed()throws SQLException 判断连接是否已关闭 DatabaseMetaData getMetaData()throws SQLException 得到所连接数据库的元数据

任务三 数据库的操作  import java.sql.*;  public class SQLDemo {  public static void main(String[] args) {  Connection con=null;  try {  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  String connectionURL="jdbc:odbc:test";  con = DriverManager.getConnection(connectionURL,"sa","sa");  Statement stat = con.createStatement();  String query1="insert into user_table(name,password) values (" +"'Tom','123456')";  String query2="insert into user_table(name,password) values (" +"'Jack','223344')";  String query3="insert into user_table(name,password) values (" +"'Mark','556677')"; 

 stat.executeUpdate(query1);  stat.executeUpdate(query2);  stat.executeUpdate(query3);  String query4="update user_table set password='654321'"+" where name='Tom'";  stat.executeUpdate(query4);  String query5="select * from user_table";  ResultSet rs=stat.executeQuery(query5); // 执行查 询数据库的语句  System.out.println("user 用户表中的内容 ");  System.out.println(" ");  System.out.println(" 用户名 \t"+" 密码 "); 

 while(rs.next())  {  String username=rs.getString("name");  String psw=rs.getString("password");  System.out.println(username+"\t"+psw);  }  rs.close();  stat.close();  }   }

相关知识  1. Statement 接口 --- 执行数据库的更新  Statement 对象由一个 Connection 对象调用 createStatement() 方法创建。通过 Statement 对象,能够执行各种操作,例如插入、修改、 删除和查询等等。因为对数据库操作的 SQL 语句其语法和返回类型各不相同,所以 Statement 接口提供了多种 execute() 方法用于 执行 SQL 语句。

Statement 的方法 方法描述 boolean execute(String sql) throws SQLExceptionString SQLException 执行 SQL 语句 ResultSet executeQuery(String sql) throws SQLException 执行数据库查询操作,返回一个结果 集对象 int executeUpdate(String sql)throws SQLException 执行数据库更新的 SQL 语句,如 insert 、 update 和 delete 等 void close() throws SQLExceptionSQLException 关闭 Statement 操作

2. ResultSet 接口 方法功能描述 DateDate getDate(String columnName) throws SQLExceptionString SQLException 以 DATE 形式取得指定列的内容 float getFloat(int columnIndex) throws SQLException SQLException 以浮点数形式按列编号取得指定列 的内容 float getFloat(String columnName) throws SQLExceptionString SQLException 以浮点数形式取得指定列的内容 int getInt(int columnIndex) throws SQLException SQLException 以整数形式按列编号取得指定列的 内容 int getInt(String columnName) throws SQLExceptionString SQLException 以整数形式取得指定列的内容 StringString getString(int columnIndex) throws SQLException SQLException 以字符串形式按列编号取得指定列 的内容 StringString getString(String columnName) throws SQLExceptionString SQLException 以字符串形式取得指定列的内容 boolean next() throws SQLExceptionSQLException 将指针从当前位置下移一行。

知识拓展  1. 数据定义语言( DDL , Data Definition Language )  ( 1 ) CREATE TABLE 命令创建表,语法格式如下:  CREATE TABLE  ( [ ]  [, [ ]] [,...]  [, ]  [, ] [,...]  )

 ( 2 )使用 ALTER TABLE 命令修改表,语法格式如 下:  ALTER TABLE  [ADD( [ ][,…])]  [ALTER COLUMN ( [ ])]  [DROP {COLUMN | }[,…]]  ( 3 )使用 DROP TABLE 命令删除表,语法格式如 下:  DROP TABLE

 2. 数据操纵语言( DML , Data Manipularion Language )  ( 1 )使用 SELECT 命令查询表中数据,语法形式如 下:  SELECT select_list [ INTO new_table ] FROM table_source [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ]

 (2) 使用 INSERT 命令向表中插入数据,语法形式如 下:  INSERT[INTO] 表名 [( 列名表 )] VALUES ( 表达式列 表 )  (3) 使用 UPDATE 命令修改表中数据,语法形式如下:  UPDATE SET = [, = ] [,…]  [ WHERE ]  3. 数据控制语言( DCL , Data Control Language )  SQL 语言用 GRANT 语句向用户授予操作权限,授予 的权限可以由 DBA 或其他授权者用 REVOKE 语句收 回。

动手练习  练习目的:  1. 掌握创建数据库应用程序的各个重要环节。  2. 掌握使用 JDBC API 提供的接口和类进行数据库操作的方 法。  练习内容:  1. 为课程表和学生成绩表设计数据库应用程序。  在 Student 数据库中创建课程表和学生成绩表,设计数据库 应用程序对两个表进行数据插入、修改、删除和查询操作, 并获得表及列的各种属性。  2. 图形用户界面的数据库应用设计。  为学生基本信息表设计图形用户界面,实现数据输入、浏览、 查询、统计等功能。