《Java Web应用开发》课件ch06.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《Java Web应用开发》课件ch06.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java Web应用开发 Java Web应用开发课件ch06 Java Web 应用 开发 课件 ch06
- 资源描述:
-
1、第第6章章 JDBC目标l了解了解JDBC体系结构体系结构l通过通过JDBC-ODBC桥驱动程序连接数据库桥驱动程序连接数据库l检索和浏览数据库中的数据检索和浏览数据库中的数据l实现对数据的更新实现对数据的更新l使用预编译语句操作数据库使用预编译语句操作数据库JDBC简介简介lJDBC(Java DataBase Connectivity)是是Java数据库连接的简称数据库连接的简称;l由一组用由一组用Java语言编写的类和接口组成,语言编写的类和接口组成,位于位于java.sql包中包中;l提供了一种标准的应用程序设计接口提供了一种标准的应用程序设计接口(API)。)。JDBC简介简介 Ja
2、va 程序程序 JDBC 驱动程序驱动程序数据库数据库SQL 命令命令 结果结果 SQL包包接口名接口名 说明说明 DriverManager此类用于加载和卸载各种驱动程序并此类用于加载和卸载各种驱动程序并建立与数据库的连接建立与数据库的连接Connection此接口表示与数据的连接此接口表示与数据的连接Statement此接口用于执行此接口用于执行 SQL 语句并将数据语句并将数据检索到检索到 ResultSet 中中 PreparedStatement 此接口用于执行预编译的此接口用于执行预编译的 SQL 语句语句 ResultSet此接口表示了查询出来的数据库数据此接口表示了查询出来的数
3、据库数据结果集结果集SQL包包开开 始始 导入导入 java.sql包包 加载并注册驱动程序加载并注册驱动程序 创建创建 Connection 对象对象 创建创建PreparedStatement 对象对象 执行语句执行语句 关闭关闭ResultSet 对象对象 关闭关闭Statement对象对象 关闭连接关闭连接 结束结束 使用使用ResultSet对象对象 Import java.sql.*;Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);Connection con =DriverManager.getConnection(“jdbc:odbc
4、:数据源数据源”);PreparedStatement psmt=con.prepareStatement(sql);ResultSet rs=psmt.executeQuery();int num=psmt.executeUpdate();rs.close();psmt.close();con.close();连接数据库连接数据库l在在SQL Server中创建数据库和数据表中创建数据库和数据表l“管理工具管理工具”-”数据源数据源(ODBC)”,配置数配置数据源据源 import java.sql.*;Connection conn=null;try Class.forName(“sun.
5、jdbc.odbc.JdbcOdbcDriver”);String url=“jdbc:odbc:study”;conn=DriverManager.getConnection(url,“sa”,“sa”);System.out.println(数据库连接成功数据库连接成功);catch(SQLException ex1)ex1.printStackTrace();finally try if(conn!=null)conn.close();catch(SQLException ex2)ex2.printStackTrace();com.microsoft.jdbc.sqlserver.SQL
6、ServerDriverjdbc:microsoft:sqlserver:/localhost:1433;DataBaseName=bbs 检索数据库检索数据库(1)select 员工编号员工编号员工姓名员工姓名员工职务员工职务 所属部门所属部门基本工资基本工资 检索数据库检索数据库(2)读取字段名读取字段名ResultSetMetaData rsmd=rs.getMetaData();int numberOfColumn=rsmd.getColumnCount();%for(int i=1;i=cols;i+)out.print(“+rsmd.getColumnLabel(i)+“”);%f
7、or(int i=1;i 检索数据库检索数据库(3)可滚动的数据集可滚动的数据集%stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);String sql=select*from 员工档案员工档案;rs=stmt.executeQuery(sql);if(request.getParameter(row)!=null)String row=request.getParameter(row);if(row.equals(first)rs.first();else if(row.
8、equals(last)rs.last();else if(Integer.parseInt(row)首记录首记录a href=ScrollQuery.jsp?row=上一条上一条a href=ScrollQuery.jsp?row=下一条下一条尾记录尾记录更新数据库更新数据库 executeUpdate()Connection conn=null;PreparedStatement psmt=null;ResultSet rs=null;try conn=DriverManager.getConnection(url,user,password);String sql=insert into
9、 员工档案员工档案 values(?,?,?,?,?);psmt=conn.prepareStatement(sql);psmt.setString(1,“11”);psmt.setString(2,“jake”);psmt.setString(3,“manager”);psmt.setString(4,“研发部研发部”);psmt.setString(5,“2000”);int num=psmt.executeUpdate();使用事务使用事务l在数据库系统中,可以把一系列对数据源在数据库系统中,可以把一系列对数据源的操作作为一个整体来对待,这个整体称的操作作为一个整体来对待,这个整体称为一
10、次事务。为一次事务。l事务开始后,如果事务中的所有操作都能事务开始后,如果事务中的所有操作都能正确执行,则将这些操作全部施加到数据正确执行,则将这些操作全部施加到数据库上;否则,就取消所有的操作,这时,库上;否则,就取消所有的操作,这时,数据库中的数据和执行事务前的数据是一数据库中的数据和执行事务前的数据是一样的。样的。使用事务使用事务conn=DriverManager.getConnection(url,user,password);conn.setAutoCommit(false);/关闭自动提交模式关闭自动提交模式String sql=insert into 员工档案员工档案 valu
11、es(?,?,?,?,?);psmt=conn.prepareStatement(sql);psmt.setString(1,20);psmt.setString(2,段金锁段金锁);psmt.setString(3,经理助理经理助理);psmt.setString(4,研发部研发部);psmt.setString(5,2000);psmt.executeUpdate();psmt=conn.prepareStatement(update 员工档案员工档案 set 基本工资基本工资=3800 where 员工姓名员工姓名=jake);psmt.executeUpdate();mit();/正常
12、则提交事务,出现异常则回滚正常则提交事务,出现异常则回滚conn.rollback()conn.setAutoCommit(true);思考思考l在查询或更新数据库的每一次操作中,都在查询或更新数据库的每一次操作中,都要在连接和关闭数据库的语句中重复部分要在连接和关闭数据库的语句中重复部分代码,合适吗?代码,合适吗?import java.sql.*;try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);String url=“jdbc:odbc:study”;Connection conn=DriverManager.getConnection(
13、url,“sa”,“sa”);catch(ClassNotFoundException ex1)System.out.println(ex1.getMessage);catch(SQLException ex2)System.out.println(ex2.getMessage);finally try if(conn!=null)conn.close();catch(SQLException ex)out.println(ex.getMessage);数据库连接重用数据库连接重用 JSP页面1底层类(可重用)JSP页面2BaseDao 数据访问层工具类数据访问层工具类/BaseDao.jav
展开阅读全文