第4章JDBC数据库访问技术 数据库是Web应用程序重要组成部分,在Java Web应用程序中,数据库访问是通过Java数据库连接 ( Java data base connectⅳity,简称」DBC)实现的 JDBC为开发人员提供了一个标准的AP 本章介绍使用」DBC驱动程序连接数据库和使用连 接池技术连接数据库并设计应用程序的方法、步骤和 实例
第4章 JDBC数据库访问技术 数据库是Web应用程序重要组成部分,在Java Web应用程序中,数据库访问是通过Java数据库连接 (Java DataBase Connectivity,简称JDBC )实现的。 JDBC为开发人员提供了一个标准的API。 本章介绍使用JDBC驱动程序连接数据库和使用连 接池技术连接数据库并设计应用程序的方法、步骤和 实例
第4章JDBc数据库访问技术 41」DBc技术概述 42」DBC访问数据库 43综合案例一一学生身体体质信息管理系统的开发 44数据源与连接池技术 本章小结
第4章 JDBC数据库访问技术 4.1 JDBC技术概述 4.2 JDBC访问数据库 4.3 综合案例——学生身体体质信息管理系统的开发 4.4 数据源与连接池技术 本章小结
41JDBc技术概述 JDBC是一种用于执行SQL语句的 JJava APl,由一组类与接口 组成,通过调用这些类和接口所提供的方法,可以使用标准的 SQL语言来存取数据库中的数据。 应用程序 应用程序 应用程序 JDBC API JDBC Driver manager 数据库驱动 数据库 数据库 数据库 本节内容: 41.1驱动程序接口 Driver 41.2驱动程序管理器 DriverManager 41.3数据库连接接口 Connection 414执行SQL语句接口 Statement 415执行动态SQL语句接口 PreparedStatement 416访问结果集接口 Resultset
4.1 JDBC技术概述 JDBC是一种用于执行SQL语句的Java API,由一组类与接口 组成,通过调用这些类和接口所提供的方法,可以使用标准的 SQL语言来存取数据库中的数据。 本节内容: 4.1.1 驱动程序接口Driver 4.1.2 驱动程序管理器DriverManager 4.1.3 数据库连接接口Connection 4.1.4 执行SQL语句接口Statement 4.1.5 执行动态SQL语句接口PreparedStatement 4.1.6 访问结果集接口ResultSet JDBC Driver Manager 数据库驱动 JDBC API 应用程序 应用程序 数据库 数据库 应用程序 数据库
类或接口 作用 该类处理驱动程序的加载和建立新数据库连 java. sql DriverManager 接 ava. sql connection 该接口实现对特定数据库的连接 java.sql Satement 该接口表示用于执行静态SQL语句并返回它 所生成结果的对象 该接口表示预编译的SQL语句的对象,派生 java. sql. Preparedstatemen自 Satement,预编译SQL效率高且支持参数 查询 该接口表示用于执行SQL语句存储过程的对 java. sql Callable Statement象。派生自 PreparedStatement,用于调用数 据库中的存储过程 Java. sql ResultSet 该接口表示数据库结果集的数据表,统称通 过执行查询数据库的语句生成
类或接口 作用 java.sql.DriverManager 该类处理驱动程序的加载和建立新数据库连 接 java.sql.Connection 该接口实现对特定数据库的连接 java.sql.Satement 该接口表示用于执行静态SQL语句并返回它 所生成结果的对象 java.sql.PreparedStatemen t 该接口表示预编译的SQL语句的对象,派生 自Satement,预编译SQL效率高且支持参数 查询 java.sql.CallableStatement 该接口表示用于执行SQL语句存储过程的对 象。派生自PreparedStatement,用于调用数 据库中的存储过程 java.sql.ResultSet 该接口表示数据库结果集的数据表,统称通 过执行查询数据库的语句生成
41.1驱动程序接口 Driver 每种数据库都提供了数据库驱动程序,并且都提供 了一个实现 Ljava sql Driver接口的类,简称 Driver类。 在应用程序开发中,需要通过 java. lang Class类的 静态方法 foreName( String className),加载该 Driver类。 在加载时,创建自己的实例并向 java. sql DriverManager 类注册该实例
4.1.1 驱动程序接口Driver 每种数据库都提供了数据库驱动程序,并且都提供 了一个实现java.sql.Driver接口的类,简称Driver类。 在应用程序开发中,需要通过java.lang.Class类的 静态方法forName(String className),加载该Driver类。 在加载时,创建自己的实例并向java.sql.DriverManager 类注册该实例
412驱动程序管理器 DriverManager java. sql. DriverManager类负责管理」DBC驱动程序的基本服 务,是JDBC的管理层,作用于用户和驱动程序之间,负责跟 踪可用的驱动程序,并在数据库和驱动程序之间建立连接。 DriverManager类即可用来建立数据库连接。 DriverManager类提供的最常用的方法是 Connection get Connection(String url, String user, String password) 该方法为静态方法,用来获得数据库连接,有3个入口 参数,依次为要连接数据库的URL、用户名和密码,返回值 类型为 java. sql Connection
4.1.2 驱动程序管理器DriverManager java.sql.DriverManager类负责管理JDBC驱动程序的基本服 务,是JDBC的管理层,作用于用户和驱动程序之间,负责跟 踪可用的驱动程序,并在数据库和驱动程序之间建立连接。 DriverManager类即可用来建立数据库连接。 DriverManager类提供的最常用的方法是: Connection getConnection(String url,String user,String password) 该方法为静态方法,用来获得数据库连接,有3个入口 参数,依次为要连接数据库的URL、用户名和密码,返回值 类型为java.sql.Connection
413数据库连接接口 Connection ava.sq! Connection接口负责与特定数据库的连接,形成连 接对象。由该对象完成相关的操作, 表4-2 Connection接口的常用方法 方法名称 功能描述 创建并返回一个 Statemen实例,通常在执行无参 create Statement(0数的SQL语句时创建该实例 创建并返回一个 Prepared Statement实例,通常在 执行包含参数的SQL语句时创建该实例,并对SQL prepare statement0O语句进行了预编译处理 立即释放 Connectionη实例占用的数据库和JDBC资 close 源,即关闭数据库连接
4.1.3 数据库连接接口Connection java.sql.Connection接口负责与特定数据库的连接,形成连 接对象。由该对象完成相关的操作。 方法名称 功能描述 createStatement() 创建并返回一个Statement实例,通常在执行无参 数的SQL语句时创建该实例 prepareStatement() 创建并返回一个PreparedStatement实例,通常在 执行包含参数的SQL语句时创建该实例,并对SQL 语句进行了预编译处理 close() 立即释放Connection实例占用的数据库和JDBC资 源,即关闭数据库连接 表4-2 Connection接口的常用方法
414执行SQL语句接口 Statement java. sql Statement接口用来执行静态的SQL语句,并返回 执行结果。 Statement接口提供的常用方法。 方法名称 功能描述 execute Query( ( String sql)执行指定的静态 SELECT语句,并返回 个永远不能为nu的 Results实例 执行指定的静态 SINSERT、 UPDATE或 executeUpdate( String Sq/ DELETE语句,并返回一个in型数值 为同步更新记录的条数 立即释放 Statemen实例占用的数据库 close 和JDBC资源,即关闭 Statemen实例
4.1.4 执行SQL语句接口Statement java.sql.Statement接口用来执行静态的SQL语句,并返回 执行结果。Statement接口提供的常用方法。 方法名称 功能描述 executeQuery(String sql) 执行指定的静态SELECT语句,并返回 一个永远不能为null的ResultSet实例 executeUpdate(String sql) 执行指定的静态INSERT、UPDATE或 DELETE语句,并返回一个int型数值, 为同步更新记录的条数 close() 立即释放Statement实例占用的数据库 和JDBC资源,即关闭Statement实例
415执行动态SQL语句接口 -PreparedStatement java. sql. PreparedStatement接口继承于 Statement接口,是 Statement接口的扩展,用来执行动态的SQL语句,即包含参 数的SQL语句。 PreparedStatement接口提供的常用方法。 方法名称 功能描述 executeQueryo 执行前面包含参数的动态 SELECT语句,并返回一个永 远不能为nu的 Results实例 执行前面包含参数的动态 NSERT、 UPDATE或 DELETE executeUpdateo 语句,并返回一个int型数值,为同步更新记录的条数 setXxo 为指定参数设置Xx型值 close 立即释放 Statement实例占用的数据库和JDBC资源,即 关闭 Statemen实例
4.1.5 执行动态SQL语句接口 ——PreparedStatement java.sql.PreparedStatement接口继承于Statement接口,是 Statement接口的扩展,用来执行动态的SQL语句,即包含参 数的SQL语句。PreparedStatement接口提供的常用方法。 方法名称 功能描述 executeQuery() 执行前面包含参数的动态SELECT语句,并返回一个永 远不能为null的ResultSet实例 executeUpdate() 执行前面包含参数的动态INSERT、UPDATE或DELETE 语句,并返回一个int型数值,为同步更新记录的条数 setXxx() 为指定参数设置Xxx型值 close() 立即释放Statement实例占用的数据库和JDBC资源,即 关闭Statement实例
416访问结果集接口 ResultSet 通过该接口的实例可以获得检索结果集,以及对应数据 表的相关信息。 Resultset实例是通过执行查询数据库的语句 生成。 Resultset接口提供的常用方法 方法名称 功能描述 fro移动指针到第一行;如果结果集为空则返回se,否则返回true 如果结果集类型为 TYPE FORWARD ONLY将抛出异常 last 移动指针到最后一行;如果结果集为空则返回 false,否则返回true; 如果结果集类型为 TYPE FORWARD ONLY将抛出异常 previous0|移动指针到上一行;如果存在上一行则返回tue,否则返回fase 如果结果集类型为 TYPE FORWARD ONLY将抛出异常 nexto 移动指针到下一行;指针最初位于第一行之前,第一次调用该方法 将移动到第一行;如果存在下一行则返回true,否则返回 false getRowo 查看当前行的索引编号;索引编号从1开始,如果位于有效记录彳 上则返回一个nt型索引编号,否则返回0 查看指定列名的索引编号;该方法有一个 String型入口参数,为要 find column0查看列的名称,如果包含指定列,则返回i型索引编号,否则将抛 出异常 释放 Resultset实例占用的数据库和JDBC资源,当关闭所属的 ooe|stem例时也将执行此操作
4.1.6 访问结果集接口ResultSet 通过该接口的实例可以获得检索结果集,以及对应数据 表的相关信息。ResultSet实例是通过执行查询数据库的语句 生成。ResultSet接口提供的常用方法。 方法名称 功能描述 first() 移动指针到第一行;如果结果集为空则返回false,否则返回true; 如果结果集类型为TYPE_FORWARD_ONLY将抛出异常 last() 移动指针到最后一行;如果结果集为空则返回false,否则返回true; 如果结果集类型为TYPE_FORWARD_ONLY将抛出异常 previous() 移动指针到上一行;如果存在上一行则返回true,否则返回false; 如果结果集类型为TYPE_FORWARD_ONLY将抛出异常 next() 移动指针到下一行;指针最初位于第一行之前,第一次调用该方法 将移动到第一行;如果存在下一行则返回true,否则返回false getRow() 查看当前行的索引编号;索引编号从1开始,如果位于有效记录行 上则返回一个int型索引编号,否则返回0 findColumn() 查看指定列名的索引编号;该方法有一个String型入口参数,为要 查看列的名称,如果包含指定列,则返回int型索引编号,否则将抛 出异常 close() 释放ResultSet实例占用的数据库和JDBC资源,当关闭所属的 Statement实例时也将执行此操作