浙江省建设局网站盐城亭湖区建设局网站
- 作者: 五速梦信息网
- 时间: 2026年04月20日 03:42
当前位置: 首页 > news >正文
浙江省建设局网站,盐城亭湖区建设局网站,永安市建设局网站,wordpress插件很多吗7. 3 使用 JDBC 操作数据库 JDBC 的接口分为两个层次#xff1a; 一个是面向程序开发人员的 JDBC API#xff1b; 另一个是底层的JDBC 驱动器 API。 JDBC 接口如图 7-11 所示。 Java Database Connectivity #xff08;JDBC#xff09; 是一个标准的 Java API…7. 3 使用 JDBC 操作数据库 JDBC 的接口分为两个层次 一个是面向程序开发人员的 JDBC API 另一个是底层的JDBC 驱动器 API。 JDBC 接口如图 7-11 所示。 Java Database Connectivity JDBC 是一个标准的 Java API 由一组类和接口组成 Java应用程序开发人员使用它来访问数据库和执行 SQL 语句。 JDBC API 主要包括 6 种接口 见 表 7-1。
- 3. 1 使用 JDBC 访问数据库的过程 JDBC 访问数据库可以分为连接数据库和操作数据库两个步骤。 图 7-12 给出了用简单的 JDBC 模型进行连接、 执行和获取数据的过程。1. JDBC 连接数据库 JDBC 连接数据库分为加载驱动程序和建立连接两个步骤。加载驱动程序为了与特定的数据源或者数据库相连JDBC 必须加载相应的驱动程序。 驱动程序可以是 JDBC - ODBC 桥驱动程序、 JDBC 通过网络协议的驱动程序 或者是由数据库厂商提供的驱动程序。各种数据库的连接方法见表 7-2。 【例 7-1】 下面的例子测试数据是否连接成功。 首先安装数据库 MySQL 本书选择的安装的版本为 MySQL - 5. 1. 24 在安装 MySQL 之前首先安装 . NET Framewrok 4。 图 7-13 所示为 . NET Framewrok 4 安装界面。 图 7-14 所示为 MySQL 安装界面。MySQL 安装完成以后 首先将本章的 db. txt 导入到 MySQL 中 登录 MySQL 命令行客户端 使用下列命令 Source 绝对路径\db. txt 创建 testconnection. jsp 网页文件代码如下 % pagecontentType text / html charset gb2312 language java errorPage % % page import java. sql. ∗ % DOCTYPE HTML PUBLIC - / / W3C / / DTD HTML 4. 01 Transitional / / EN html head meta http - equiv Content - Type content text / html charset gb2312 title test connection / title / head body %
String url jdbcmysql / / localhost / ch10
String userName root
String password root
Connection conn null
try {
Class. forName com. mysql. jdbc. Driver
} catchClassNotFoundException e {
out. println加载驱动器类时出现异常
}try {
conn null
conn DriverManager. getConnectionurl userName password
} catchSQLException e {
out. println连接数据库的过程中出现 SQL 异常
} if conn null
out. println连接数据库失败
else
out. println连接数据库成功
try {
conn. close
} catch SQLException e {
out. println关闭数据库连接时出现 SQL 异常
} %/ body / html
在 Tomcat 服务器下测试 testconnection. jsp 运行结果如图 7-15 所示。 - JDBC 操作数据库 JDBC 在连接数据库之后 就可以对数据库中的数据库进行操作了 可按以下步骤进行。在 Java 程序中通过 JDBC 操作数据库一般分为以下几个步骤。 1 将数据库的 JDBC 驱动加载到 classpath 中 在给予 Java EE 的 Web 应用实际开发过程中 通常要把目标数据库产品的 JDBC 驱动复制到 WEB - INF / lib 下。 2 加载 JDBC 驱动 并将其注册到 DriverManager 中。 下面是一些主流数据库的 JDBC 驱动加载注册的代码 Oracle8 / 8i / 9i 数据库thin 模式 Class. forName oracle. jdbc. driver. OracleDriver . newInstance SQL7. 0 / 2000 数据库 Class. forName com. microsoft. jdbc. sqlserver. SQLServerDriver . newInstance DB2 数据库 Class. forName com. ibm. db2. jdbc. app. DB2Driver . newInstance Informix 数据库 Class. forName com. informix. jdbc. IfxDriver . newInstance Sybase 数据库 Class. forName com. sybase. jdbc. SybDriver . newInstance MySQL 数据库 Class. forName com. mysql. jdbc. Driver . newInstance PostgreSQL 数据库 Class. forName org. postgresql. Driver . newInstance Access 数据库 Class. forName sun. jdbc. odbc. JdbcOdbcDriver . newInstance 3 建立数据库连接 取得 Connection 对象 一些主流数据库代码如下 Oracle8 / 8i / 9i 数据库 thin 模式String url jdbcoraclethin localhost1521orcl String user scott String password tiger Connection conn DDriverManager. getConnectionurluserpassword SQL7. 0 / 2000 数据库 String url jdbcmicrosoftsqlserver / / localhost1433DatabaseName pubs String user sa tring password Connection conn DDriverManager. getConnectionurluserpassword DB2 数据库 String url jdbcdb2 / / localhost5000 / sample String user admin String password Connection conn DDriverManager. getConnectionurluserpassword Informix 数据库 String url jdbcinformix - sqli / / localhost1533 / test DBINFORMIXSERVER myserver user testuser password testpassword Connection c urlonn DDriverManager. getConnection Sybase 数据库 String url jdbc sybase Tds / / localhost 5007 / tsdata Properties sysProps System. getProperties sysProps. put user userid sysProps. put password user_password Connection conn DDriverManager. getConnectionurlsysProps MySQL 数据库 String url jdbcmysql / / localhost3306 / testDB user rootpassword useUnicode true characterEncoding gb2312 Connection conn DriverManager. getConnectionurl PostgreSQL 数据库 String url jdbcpostgresql / / localhost / testDB String user myuser String password mypassword Connection conn DriverManager. getConnectionurluserpassword Access 数据库 Connection dbConn DriverManager. getConnection jdbc odbc test / / test 数 据 源 名称 4 建立 Statement 对象或 PreparedStatement 对象。 建立 Statement 对象 Statement stmt conn. creatStatement PreparedStatement 对象 String sql select ∗ from users where userName and password PreparedStatement pstmt conn. prepareStatementsql pstmt. setStringadmin pstmt. setStringliubin 5 执行 SQL 语句 执行静态 SQL 查询 String sql select ∗ from users ResultSet rs stmt. executeQuery sql 执行动态 SQL 查询 ResultSet rs pstmt. executeQuery 执行 insert update delete 等语句 先定义 sql stmt. executeUpdate sql 6 访问结果记录集 ResultSet 对象 While re. next { out. println 你的第一个字段内容为 rs. getString 1 out. println 你的第二个字段内容为 rs. getString 2 } 7 依次将 ResultSet Statement PreparedStatement Connection 对象关闭 释放所占用 的资源 如 rs. close stmt. close pstmt. close con. close 。
- 3. 2 使用 Statement 执行 SQL 语句 java. sql 包下有两个非常重要的接口———Statement 与 ResultSet。 Statement 定义运行 SQL 指令所需的方法成员 如果运行的 SQL 是一种 Select 类型的指令 ResultSet 将封装 Statement 运行 SQL 指令后所返回的数据内容 用户通过 ResultSet 取得 SQL 返回的数据 内容。 JSP 网页在使用 Statement 的功能之前 必须先取得其对象 而 Statement 类型的对象 则是通过引用 Connection 接口类型对象的方法成员 createStatement 所产生的。图 7-16 给出了 Statement 与 ResultSet 类型对象 说明了它们在整个 JSP 网页当中所扮演的角色。 JSP 网页通过 SQL 的引用 可以进行各种数据库的操作 其中包含了修改数据库结构和数据内容的更新和查询。 修改数据库结构包含了新增与删除数据表、 变更数据表内容、 修改字段等 数据查询与更新则是根据条件从数据库中取出部分数据 或是新增、 删除、 修改数据内容。 Statement 主要提供运行 SQL 指令的方法 以及设置 SQL 后返回 ResultSet 类型对象的属性 见表 7-3。 1. exeuteQuery 方法 exeuteQuery 方法用于执行产生单个结果集的 SQL 语句 如 Slect 语句。 exeuteQuery 方法在 Statement 接口中的完整声明如下 ResultSet executeQuery String sql throws SQLException 【例 7-2 】 下面的 testExecuteQuery. jsp 中使用 executeQuery String sql 方法访问 student 中的数据 并显示返回的结果 如图 7-17 所示。
testExecuteQuery. jsp 的代码如下% page contentType text / html charset gb2312 language java errorPage % % page import java. sql. ∗ % DOCTYPE HTML PUBLIC - / / W3C / / DTD HTML 4. 01 Transitional / / EN html head meta http - equiv Content - Type content text / html charset gb2312 title testexecuteQuery / title / head body %
String url jdbcmysql / / localhost / ch10
String userName root
String password root
String sql null
Connection conn null
Statement stmt null
try {
Class. forName com. mysql. jdbc. Driver
} catchClassNotFoundException e {
out. println加载驱动器类时出现异常
} tr
y {
conn DriverManager. getConnectionurl userName password
/ / 创建 Statement 语句
stmt conn. createStatement
sql SELECT ∗ FROM student
/ / 使用 executeQuery 执行 SQL 查询语句
ResultSet rs stmt. executeQuerysql
% table width 740 border 1 cellspacing 0 cellpadding 6 tr td width 120 align center valign middle 编号 / td td width 145 align center 姓名 / td td width 253 align center 地址 / td td width 148 align center 出生日期 / td / tr %
/ / 显示返回的结果集
while rs. next {
int id rs. getInt1
String name rs. getString2
String address rs. getString3
String birthday rs. getString4
% tr td height 40 align center valign middle % id% / td td align center valign middle % name% / td tdvalign middle % address% / td td align center valign middle % birthday% / td / tr % }
rs. close
stmt. close
} catchSQLException e {
out. println出现 SQLException 异常
} finally {
/ / 关闭语句和数据库连接
try {
if conn null conn. close
} catchSQLException e {
out. println关闭数据库连接时出现异常
}
}
% / body / html
- executeUpdate 方法 executeUpdate 方法运行给定的 SQL 语句 可以使用 INSERT、 UPDATE 或 DELETE语句 或不返回任何内容的 SQL 语句 如 CREAT TABLE 和 DROP TABLE。 INSERT、 UPDATE 或 DELETE 语句的效果是修改表中多行的一列或多列。 executeUpdate 方法的返回值是一个整数 指示受影响的行数。 对于 CREAT TABLE 和 DROP TABLE 等不操作行的语句 executeUpdate 的返回值总是零。 executeUpdate 方法在 Statement 接口中的声明如下 intexecuteUpdateString sql throws SQLException / / 同时抛出 SQL 异常 【例 7-3】 下面的 testExecuteUpdate. jsp 中使用 executeUpdate 方法访问 student 中的 数据 并显示返回的结果 如图 7-18 所示。 testExecuteUpdate. jsp 的代码如下 % pagecontentType text / html charset gb2312 language java errorPage % % page import java. sql. ∗ % DOCTYPE HTML PUBLIC - / / W3C / / DTD HTML 4. 01 Transitional / / EN html head meta http - equiv Content - Type content text / html charset gb2312 title testexecuteUpdate / title / head body % String url jdbcmysql / / localhost / ch10
String userName root
String password root
Stringsql null
Connection conn null
Statement stmt null
try {
Class. forName com. mysql. jdbc. Driver
} catchClassNotFoundException e {
out. println加载驱动器类时出现异常
} tr
y {
conn DriverManager. getConnectionurl userName password
/ / 创建 Statement 语句
stmt conn. createStatement
sql DELETE FROM student WHERE stu_id 10
/ / 使用 executeUpdate 执行更新语句
intaffectedRowCount stmt. executeUpdatesql
out. println删除操作影响的数据行数为 affectedRowCount br
/ / 使用 executeUpdate 执行更新语句 sql INSERT INTO studentnameaddressbirthday VALUES 小王 北京 1980 - 05 - 10
affectedRowCount stmt. executeUpdatesql out. println插入操作影响的数据行数为 affectedRowCount br
sql update student set address shanghai where stu_id 11
affectedRowCount stmt. executeUpdatesql out. println修改操作影响的数据行数为 affectedRowCount br
stmt. close } catchSQLException e { out. println出现 SQLException 异常 } finally { / / 关闭语句和数据库连接 try { if conn null conn. close } catchSQLException e { out. println关闭数据库连接时出现异常 } } %/ body / html
- execute 方法 execute 方法用于执行返回多个结果集、 多个更新计数或两者组合的语句。 execute 方法应该仅在语句能返回多个 ResultSet 对象、 多个更新计数或 ResultSet 对象与更新计 数的组合时使用。 当执行某个已存储过程或动态执行未知 SQL 字符串时 有可能出现多个结果的情况 尽管这种情况很少见。 execute 方法可以执行查询语句也可执行修改语句。 execute 方法在 Statement 接口中的声明如下 boolean executeString sql throws SQLException / / 同时抛出 SQL 异常 【例 7-4】 下面的 testExecute. jsp 中使用 execute 方法访问 student 中的数据 并显 示返回的结果 如图 7-19 和图 7-20 所示。 testExecute. jsp 的代码如下% pagecontentType text / html charset gb2312 language java errorPage % % page import java. sql. ∗ % DOCTYPE HTML PUBLIC - / / W3C / / DTD HTML 4. 01 Transitional / / EN html head meta http - equiv Content - Type content text / html charset gb2312 title test execute / title / head body % Stringsql request. getParameter sqltest
ifsql null{% form name Example method post action p sql 语句 input type text name sqltest size 100 maxlength 100 / p p input type submit value 传送 / p % }else{
String url jdbcmysql / / localhost / ch10
String userName root
String password root
Connection conn null
Statement stmt null
try {
Class. forName com. mysql. jdbc. Driver
} catchClassNotFoundException e {
out. println加载驱动器类时出现异常 br
} try { conn DriverManager. getConnectionurl userName password / / 创建 Statement 语句 stmt conn. createStatement out. println执行的 SQL 语句为 sql br
/ / 使用 execute 执行未知 SQL 语句 booleanisResultSet stmt. executesql int count 0 while true { count
if isResultSet { ResultSet rs stmt. getResultSet out. println返回的执行结果 count 为结果集 br
/ / 显示返回的结果集 while rs. next { int f1 rs. getInt1 String f2 rs. getString2 String f3 rs. getString3 out. printlnf1 f2 f3 out. println br
} r s. close } e lse { int affectedRowCount stmt. getUpdateCount if affectedRowCount - 1 break out. println返回的执行结果 count 为更新计数 br
out. println更新计数为 affectedRowCount br
} i sResultSet stmt. getMoreResults } s tmt. close } catchSQLException e { out. println出现 SQLException 异常 } finally { / / 关闭语句和数据库连接 try { if conn null conn. close } catchSQLException e { out. println关闭数据库连接时出现异常 } } }% / form / body / html
- 上一篇: 浙江省建设建材工会网站ip代理池
- 下一篇: 浙江省建设培训中心网站首页福州网站建设 找燕狂徒 05
相关文章
-
浙江省建设建材工会网站ip代理池
浙江省建设建材工会网站ip代理池
- 技术栈
- 2026年04月20日
-
浙江省建设继续教育网站首页深圳互联网设计公司
浙江省建设继续教育网站首页深圳互联网设计公司
- 技术栈
- 2026年04月20日
-
浙江省建设会计协会网站首页天津装修公司哪家口碑好些
浙江省建设会计协会网站首页天津装修公司哪家口碑好些
- 技术栈
- 2026年04月20日
-
浙江省建设培训中心网站首页福州网站建设 找燕狂徒 05
浙江省建设培训中心网站首页福州网站建设 找燕狂徒 05
- 技术栈
- 2026年04月20日
-
浙江省建设厅继续教育官方网站工艺品网站模板下载
浙江省建设厅继续教育官方网站工艺品网站模板下载
- 技术栈
- 2026年04月20日
-
浙江省建设网站徐叨法湖北网站建设路
浙江省建设网站徐叨法湖北网站建设路
- 技术栈
- 2026年04月20日






