第4章-JDBC数据库访问技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第4章 JDBC数据库访问技术
4.1 JDBC技术概述 4.2 JDBC访问数据库 4.3 综合案例——学生身体体质信息管理系统的开发 4.4 数据源与连接池技术 本章小结
4.1 JDBC技术概述
JDBC是一种用于执行SQL语句的Java API,由一组类与接口 组成,通过调用这些类和接口所提供的方法,可以使用标准的 SQL语言来存取数据库中的数据。
String driverName = "com.mysqluserName = "root";
//数据库用户名
String userPwd = "123456";
//密码
String dbName = "students";
//数据库名
String url1="jdbc:mysql://localhost:3306/"+dbName;
close()
立即释放Connection实例占用的数据库和JDBC资 源,即关闭数据库连接
4.1.4 执行SQL语句接口Statement
java.sql.Statement接口用来执行静态的SQL语句,并返回 执行结果。Statement接口提供的常用方法。
方法名称 executeQuery(String sql) executeUpdate(String sql)
static Connection getConnection(String url,String user,String password):
3.利用JDBC连接MySQL数据库,获取连接对象的通用格 式
设MySQL数据库为:“students”,用户名为“root”, 密码为“123456”,数据库读写的编码采用UTF-8,连接格式:
close()
功能描述
执行指定的静态SELECT语句,并返回 一个永远不能为null的ResultSet实例 执行指定的静态INSERT、UPDATE或 DELETE语句,并返回一个int型数值, 为同步更新记录的条数
立即释放Statement实例占用的数据库 和JDBC资源,即关闭Statement实例
该接口表示数据库结果集的数据表,统称通 过执行查询数据库的语句生成
4.1.1 驱动程序接口Driver
每种数据库都提供了数据库驱动程序,并且都 提供了一个实现java.sql.Driver接口的类,简称Driver类。
在应用程序开发中,需要通过ng.Class 类的静态方法forName(String className),加载该Driver 类。在加载时,创建自己的实例并向 java.sql.DriverManager类注册该实例。
String url2 ="?user="+userName+"&password="+userPwd;
String url3="&useUnicode=true&characterEncoding=UTF-8";
String url =url1+url2+url3; //形成连接字
Class.forName(driverName); //加载并注册驱动程序
1.创建Statement对象
利用Connection类的方法createStatement()可以创建一个 Statement类实例,用来执行SQL操作。
例如,假设通过数据库连接,得到其连接对象为conn, 那么,可创建Statement的一个实例stmt:
Statement stmt = conn.createStatement();
static Connection getConnection(String url)
第2种:通过url指定的数据库建立连接,info提供了一些属性, 这些属性里包括了user和password等属性,其语法原型为:
static Connection getConnection(String url,Properties info); 第3种:传入参数用户名为user,密码为password,通过url指 定的数据库建立连接,,其语法原型为:
移动指针到下一行;指针最初位于第一行之前,第一次调用该方法 将移动到第一行;如果存在下一行则返回true,否则返回false 查看当前行的索引编号;索引编号从1开始,如果位于有效记录行 上则返回一个int型索引编号,否则返回0 查看指定列名的索引编号;该方法有一个String型入口参数,为要 查看列的名称,如果包含指定列,则返回int型索引编号,否则将抛 出异常
应用程序
应用程序
应用程序
数据库
JDBC API JDBC Driver Manager
数据库驱动 数据库
数据库
本节内容:
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
方法名称
功能描述
executeQuery()
执行前面包含参数的动态SELECT语句,并返回一个永 远不能为null的ResultSet实例
executeUpdate()
执行前面包含参数的动态INSERT、UPDATE或DELETE 语句,并返回一个int型数值,为同步更新记录的条数
setXxx() close()
第4章 JDBC数据库访问技术
数据库是Web应用程序重要组成部分,在Java Web应用程序中,数据库访问是通过Java数据库连接 (Java DataBase Connectivity,简称JDBC )实现的。 JDBC为开发人员提供了一个标准的API。
本章介绍使用JDBC驱动程序连接数据库和使用连 接池技术连接数据库并设计应用程序的方法、步骤和 实例。
Web应用程序的WEB-INF\lib目录下,Web应用程序就可以通 过JDBC接口访问MySQL数据库了。
2.加载注册指定的数据库驱动程序 对于MySQL数据库,其驱动程序加载格式:
Class.forName("com.mysql.jdbc.Driver"); 其中,“com.mysql.jdbc.Driver”为MySQL数据库驱
本节内容: 4.2.1 注册驱动MySQL的驱动程序 4.2.2 JDBC连接数据库创建连接对象 4.2.3 创建数据库的操作对象 4.2.4 执行SQL 4.2.5 获得查询结果并进行处理 4.2.6 释放资源 4.2.7 数据库乱码解决方案
4.2.1 注册驱动MySQL的驱动程序
1.将驱动程序文件添加到应用项目 将驱动程序mysql-connector-java-5.1.6-bin,拷贝到
java.sql.PreparedStatemen 自Satement,预编译SQL效率高且支持参数
t
查询
该接口表示用于执行SQL语句存储过程的对 java.sql.CallableStatement 象。派生自PreparedStatement,用于调用数
据库中的存储过程
java.sql.ResultSet
java.sql.Connection接口负责与特定数据库的连接,形成连 接对象。由该对象完成相关的操作。
表4-2 Connection接口的常用方法
方法名称
功能描述
创建并返回一个Statement实例,通常在执行无参 createStatement() 数的SQL语句时创建该实例
创建并返回一个PreparedStatement实例,通常在 执行包含参数的SQL语句时创建该实例,并对SQL prepareStatement() 语句进行了预编译处理
4.1.2 驱动程序管理器DriverManager
java.sql.DriverManager类负责管理JDBC驱动程序的基本服 务,是JDBC的管理层,作用于用户和驱动程序之间,负责跟 踪可用的驱动程序,并在数据库和驱动程序之间建立连接。
DriverManager类即可用来建立数据库连接。 DriverManager类提供的最常用的方法是:
为指定参数设置Xxx型值
立即释放Statement实例占用的数据库和JDBC资源,即 关闭Statement实例
4.1.6 访问结果集接口ResultSet
通过该接口的实例可以获得检索结果集,以及对 应数据表的相关信息。ResultSet实例是通过执行查询数据库 的语句生成。ResultSet接口提供的常用方法。
//获取数据库连接对象
Connection conn=DriverManager.getConnection(url);
4.2.3 创建数据库的操作对象
数据库的操作对象是指能执行SQL语句的对象,需要 Connection类中创建数据库的操作对象的方法实现创建。
可创建两种不同的数据库操作对象: Statement对象、PrepareStatement对象。
Connection getConnection(String url,String user,String password)
该方法为静态方法,用来获得数据库连接,有 3个入口参数,依次为要连接数据库的URL、用户名和密码, 返回值类型为java.sql.Connection
4.1.3 数据库连接接口Connection
4.1.5 执行动态SQL语句接口 ——PreparedStatement
java.sql.PreparedStatement接口继承于Statement接口,是 Statement接口的扩展,用来执行动态的SQL语句,即包含参 数的SQL语句。PreparedStatement接口提供的常用方法。
2.利用连接符号字实现连接,获取连接对象
DriverManager类提供了getConnection方法,用来建立与数 据库的连接。调用getConnection()方法可返回一个数据库连接 对象。
getConnection方法有3种不同的重载形式: 第1种:通过url指定的数据库建立连接,其语法原型为:
类或接口
作用
java.sql.DriverManager java.sql.Connection
该类处理驱动程序的加载和建立新数据库连 接
该接口实现对特定数据库的连接
java.sql.Satement
该接口表示用于执行静态SQL语句并返回它 所生成结果的对象
该接口表示预编译的SQL语句的对象,派生
方法名称 first() last()
previous() next()
getRow()
findColumn()
close()
功能描述
移动指针到第一行;如果结果集为空则返回false,否则返回true; 如果结果集类型为TYPE_FORWARD_ONLY将抛出异常 移动指针到最后一行;如果结果集为空则返回false,否则返回true; 如果结果集类型为TYPE_FORWARD_ONLY将抛出异常 移动指针到上一行;如果存在上一行则返回true,否则返回false; 如果结果集类型为TYPE_FORWARD_ONLY将抛出异常
动程序类名。
4.2.2 JDBC连接数据库创建连接对象
创建数据库连接对象,需要首先形成“连接符号 字(URL)”,然后利用“连接符号字”实现连接并创建连 接对象。
1.数据库连接的URL 对于MySQL数据库的连接符号字,可采用如下
方式创建:
String url1="jdbc:mysql://数据库服务器IP:3306/数据库名"; String url2="?user=root&password=密码"; String url3="&useUnicode=true&characterEncoding=UTF-8"; String url=url1+url2+ url3;
释放ResultSet实例占用的数据库和JDBC资源,当关闭所属的 Statement实例时也将执行此操作
4.2 JDBC访问数据库
使用JDBC访问数据库,其访问流程是: (1)注册驱动。 (2)建立连接(Connection)。 (3)创建数据库操作对象用于执行SQL的语句。 (4)执行语句。 (5)处理执行结果(ResultSet)。 (6)释放资源。
相关文档
最新文档