Download presentation
Presentation is loading. Please wait.
Published by灿 项 Modified 8年之前
1
项目八 用户注册系统 信息工程系 杜向然
2
技能目标 掌握利用 JDBC 对数据库的访问、更新等操作,实现基本数 据库程序设计知识目标 了解 JDBC 的概念功能、意义及体系结构; 掌握使用 DriverManager 、 Connection 、 PreparedStatement 、 ResultSet 对数据库进行增、删、改、 查操作;项目任务 本项目完成用户注册的最基本功能,要求能实现从键盘输入 用户名和密码后,验证其正确性,单击 “ 注册 ” 按钮,弹出提 示信息 “ 注册成功 ” ;如果用户名或密码错误,弹出 “ 注册失 败 ” ;如果用户名或密码未输入,弹出 “ 用户名或密码不能为 空 ” 。
3
任务一 装载数据库驱动 public class ConnectionDemo_1{ public static void main(String args[]){ try{ Class.forName(" 驱动名称 ") ;// 加载驱动程 序 } catch(ClassNotFoundException e){ System.out.println(e.getMessage()) ; }
4
1 . JDBC 简介 JDBC 内嵌于 Java 中,提供了一种与平台无关的用 于执行 SQL 语句的标准 Java API ,可以为多种关系 数据库提供统一访问,它由一组用 Java 语言编写的 类和接口组成。有了 JDBC ,向各种关系数据发送 SQL 语句就是一件很容易的事。换言之,有了 JDBC API ,就不必为访问 SQL Server 数据库专门 写一个程序,为访问 Oracle 数据库又专门写一个程 序,或为访问 DB2 数据库又编写另一个程序等等, 程序员只需用 JDBC API 写一个程序就够了,它可向 不同的数据库发送 SQL 调用。 JDBC 的体系结构如图
6
2 . JDBC 驱动的分类 ( 1 ) JDBC-ODBC 桥驱动 在 Windows 操作系统中,可以通过 ODBC 来 无差异的访问数据库,在这种方式里, JDBC 是通过 ODBC 驱动程序来访问数据库服务器 的。 ( 2 ) JDBC 本地驱动 ( 3 ) JDBC 网络纯 java 驱动程序 ( 4 )本地协议纯 JDBC 驱动
7
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 中。
8
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 ") ;
9
五、知识拓展 1.JDBC API 的使用 JDBC 的核心是为用户提供 Java API 类库,它 是完全用 Java 语言编写,按照面向对象思想 设计。 JDBC 常用的类和接口
10
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 对数据库访问时产生的警告的描述信息
11
JDBC 驱动程序必须实现的 4 个接口分别是 Driver 、 Connection 、 Statement 和 ResultSet 。 其中, Driver 接口是提供给 JDBC 驱动程序实 现的接口,用于装载和管理 JDBC 驱动程序, 通常在应用程序中我们不直接使用,而是通 过 DriverManager 类使用 Driver 接口提供的功 能;其他 3 个接口在应用程序中是必须使用的。
12
任务二 连接 / 关闭数据库 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() ; }
13
try{ conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; }catch(SQLException e){ e.printStackTrace() ; } System.out.println(" 连接成功 ") ;// 如果此时可以打印表示 连接正常 try{ conn.close() ;// 数据库关闭 }catch(SQLException e){ e.printStackTrace() ; }
14
相关知识 1.DriverManager 类 管理 JDBC 驱动程序,处理驱动程序的装入, 为新的数据库连接提供支持。驱动程序必须 向该类注册后才可使用。进行连接时,该类 根据 JDBC URL 选择匹配的驱动程序。 DriverManager 的常用方法
15
DriverManager 的常用方法 方法描述 public static Connection getConnection(String url)throws SQLException 通过连接地址连接数据库 public static Connection getConnection(String url,String user,String password)throws SQLException 通过连接地址连接数据库, 同时需要输入用户名和 密码
16
( 1 ) JDBC URL URL 表示网络上某一资源的地址。 Java 应用程序需 要使用一个 URL 形式的字符串来获取一个数据库连 接。这个字符串的形式随数据库的不同而不同,但 通常总是以 “jdbc : ” 开始。 JDBC 的 URL 格式 ——jdbc :子协议:数据源 其中, jdbc 表示此 URL 指定的 JDBC 数据源,子协议 表示指定 JDBC 驱动程序的类型,数据源表示指定 的数据源名称。 例如: ①通过 JDBC-ODBC 桥连接 ODBC 数据源 test :则: String URL=”jdbc:odbc:test”;
17
②采用微软提供的 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 语句对象并提供数据 库的属性信息。
18
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 得到所连接数据库的元数据
19
任务三 数据库的操作 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')";
20
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"+" 密码 ");
21
while(rs.next()) { String username=rs.getString("name"); String psw=rs.getString("password"); System.out.println(username+"\t"+psw); } rs.close(); stat.close(); } ........ }
22
相关知识 1. Statement 接口 --- 执行数据库的更新 Statement 对象由一个 Connection 对象调用 createStatement() 方法创建。通过 Statement 对象,能够执行各种操作,例如插入、修改、 删除和查询等等。因为对数据库操作的 SQL 语句其语法和返回类型各不相同,所以 Statement 接口提供了多种 execute() 方法用于 执行 SQL 语句。
23
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 操作
24
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 将指针从当前位置下移一行。
25
知识拓展 1. 数据定义语言( DDL , Data Definition Language ) ( 1 ) CREATE TABLE 命令创建表,语法格式如下: CREATE TABLE ( [ ] [, [ ]] [,...] [, ] [, ] [,...] )
26
( 2 )使用 ALTER TABLE 命令修改表,语法格式如 下: ALTER TABLE [ADD( [ ][,…])] [ALTER COLUMN ( [ ])] [DROP {COLUMN | }[,…]] ( 3 )使用 DROP TABLE 命令删除表,语法格式如 下: DROP TABLE
27
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 ] ]
28
(2) 使用 INSERT 命令向表中插入数据,语法形式如 下: INSERT[INTO] 表名 [( 列名表 )] VALUES ( 表达式列 表 ) (3) 使用 UPDATE 命令修改表中数据,语法形式如下: UPDATE SET = [, = ] [,…] [ WHERE ] 3. 数据控制语言( DCL , Data Control Language ) SQL 语言用 GRANT 语句向用户授予操作权限,授予 的权限可以由 DBA 或其他授权者用 REVOKE 语句收 回。
29
动手练习 练习目的: 1. 掌握创建数据库应用程序的各个重要环节。 2. 掌握使用 JDBC API 提供的接口和类进行数据库操作的方 法。 练习内容: 1. 为课程表和学生成绩表设计数据库应用程序。 在 Student 数据库中创建课程表和学生成绩表,设计数据库 应用程序对两个表进行数据插入、修改、删除和查询操作, 并获得表及列的各种属性。 2. 图形用户界面的数据库应用设计。 为学生基本信息表设计图形用户界面,实现数据输入、浏览、 查询、统计等功能。
Similar presentations