第5章 jsp访问数据库

上传人:今*** 文档编号:109921911 上传时间:2019-10-28 格式:PPT 页数:27 大小:419.50KB
返回 下载 相关 举报
第5章 jsp访问数据库_第1页
第1页 / 共27页
第5章 jsp访问数据库_第2页
第2页 / 共27页
第5章 jsp访问数据库_第3页
第3页 / 共27页
第5章 jsp访问数据库_第4页
第4页 / 共27页
第5章 jsp访问数据库_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《第5章 jsp访问数据库》由会员分享,可在线阅读,更多相关《第5章 jsp访问数据库(27页珍藏版)》请在金锄头文库上搜索。

1、第5章 JSP访问数据库,主要内容 使用JDBC-ODBC桥接器连接数据库 使用纯Java数据库驱动程序连接数据库 Statement、ResultSet的使用 游动查询 访问Excel电子表格 使用连接池 其他典型数据库的连接 预处理语句的使用,5.1 使用JDBC-ODBC桥接器连接数据库,5.1.1 核心知识 使用JDBC-ODBC桥接器连接数据库的机制是:将连接数据库的相关信息提供给JDBC-ODBC驱动程序,然后转换成JDBC接口,供应用程序使用,而和数据库的连接由ODBC完成。 5.1.2 能力目标 掌握JDBC-ODBC桥接器连接数据库的方法。 5.1.3 任务驱动 1创建待连接

2、的Microsoft Access数据库 2建立JDBC-ODBC桥接器 3创建ODBC数据源,5.1 使用JDBC-ODBC桥接器连接数据库,4和ODBC数据源指定的数据库建立连接 5在JSP页面中使用JDBC-ODBC桥接器连接数据库 编写一个JSP页面example5_1.jsp,该页面中的Java程序片代码使用JDBC-ODBC桥接器连接到数据源myGod,查询goodsInfo表中的全部记录。页面运行效果如图5.8所示。,5.1 使用JDBC-ODBC桥接器连接数据库,5.1.4 实践环节 参考本节任务中的主要内容,创建数据源mySky,该数据源指定的数据库是goods.accdb。

3、 编写一个JSP页面practice5_1.jsp,该页面中的Java程序片代码使用JDBC-ODBC桥接器连接到数据源mySky,查询goodsInfo表中goodsPrice字段值大于100的全部记录。页面运行效果如图5.9所示。,5.2 使用纯Java数据库驱动程序连接数据库,5.2.1 核心知识 使用纯Java数据库驱动程序连接数据库,需要经过两个步骤: 注册纯Java数据库驱动程序 和指定的数据库建立连接,5.2 使用纯Java数据库驱动程序连接数据库,1注册纯Java数据库驱动程序 每种数据库都配有自己的纯Java数据库驱动程序。Oracle10g的纯Java驱动程序一般位于数据库

4、安装目录“oracleproduct10.2.0db_1jdbclib”下,名为classes12.jar。 try Class.forName(“oracle.jdbc.driver.OracleDriver“); catch (ClassNotFoundException e) e.printStackTrace(); ,5.2 使用纯Java数据库驱动程序连接数据库,2和指定的数据库建立连接 和Oracle数据库建立连接的代码如下: try Connection con=DriverManager.getConnection(“jdbc:oracle:thin:主机:端口号:数据库名“,

5、 “用户名“,“密码“); catch (SQLException e) e.printStackTrace(); ,5.2 使用纯Java数据库驱动程序连接数据库,5.2.2 能力目标 掌握纯Java数据库驱动程序连接数据库的方法。 5.2.3 任务驱动 1.任务的主要内容 编写一个JSP页面example5_2.jsp,该页面的Java程序片代码使用纯Java驱动程序连接Oracle数据库,查询goodsInfo表中的全部记录。 2.任务的代码模板 example5_2.jsp,5.2 使用纯Java数据库驱动程序连接数据库,3.任务小结或知识扩展 从任务中我们可以看出编写程序访问数据库需

6、要有以下几个步骤: 导入java.sql包 加载驱动程序 连接数据库 访问数据库 处理返回的结果集 关闭数据库连接,释放资源 4.任务代码模板的参考答案,5.2 使用纯Java数据库驱动程序连接数据库,5.2.4 实践环节 编写一个JSP页面practice5_2.jsp,该页面中的Java程序片代码使用纯Java数据库驱动程序连接Oracle数据库,查询goodsInfo表中goodsPrice字段值大于10并小于50的全部记录。,5.3 Statement、ResultSet的使用,5.3.1 核心知识 和数据库建立连接之后,接下来若要执行SQL语句,需要有以下几个步骤: 1创建State

7、ment对象 2执行SQL语句 3处理返回的ResultSet对象 5.3.2 能力目标 能够灵活使用Statement与ResultSet对象对数据库进行增删改查。,5.3 Statement、ResultSet的使用,5.3.3 任务驱动 1.任务的主要内容 编写两个JSP页面:addGoods.jsp和showAllGoods.jsp。用户可以在addGoods.jsp页面中输入信息后,点击“添加”按钮把信息添加到goodsInfo表中。然后,在showAllGoods.jsp页面中显示所有商品信息。在该任务中需要编写一个bean(GoodsBean.java),用来实现添加和查询记录。

8、 2.任务的代码模板 addGoods.jsp showAllGoods.jsp GoodsBean.java,5.3 Statement、ResultSet的使用,3.任务小结或知识扩展 ResultSet对象自动维护指向其当前数据行的游标。每调用一次next()方法,游标向下移动一行。最初它位于结果集的第一行之前,因此第一次调用next(),将把游标置于第一行上,使它成为当前行。随着每次调用next(),游标依次向下移动一行,按照从上至下的顺序获取ResultSet行,实现顺序查询。 ResultSet对象包含SQL语句的执行结果。它通过一套get方法对这些行中数据的访问,即使用getXx

9、x方法获得数据。get方法很多,究竟用哪一个getXxx()方法,由列的数据类型来决定。使用getXxx方法时,需要注意以下两点: 无论列是何种数据类型,都可以使用getString(int columnIndex)或getString(String columnName)方法获得列值的字符串表示。 如果使用getString(int columnIndex)方法查看一行记录时,不允许颠倒顺序,例如不允许: rs.getString(2); rs.getString(1);,5.3 Statement、ResultSet的使用,5.3.4 实践环节 编写两个JSP页面:inputQuery.j

10、sp和showGoods.jsp。用户可以在inputQuery.jsp页面输入查询条件后,点击“查询”按钮。然后,在showGoods.jsp页面中显示符合查询条件的商品信息。在本节任务的bean(GoodsBean.java)中添加一个方法getQueryResultBy()实现该题的条件查询功能。,5.4 游动查询,5.4.1 核心知识 为了获得滚动结果集,必须先用下面的方法得到一个Statement对象: Statement st=con.createStatement(int type, int concurrency); 根据type和concurrency的取值,当执行Resul

11、tSet rs=st.executeQuery(String sql)时,会返回不同类型的结果集。 5.4.2 能力目标 能够灵活使用滚动结果集进行游动查询。,5.4 游动查询,5.4.3 任务驱动 1.任务的主要内容 编写一个JSP页面randomQuery.jsp,查询goodsInfo表中的全部记录,并将结果逆序输出,最后单独输出第4条记录。 2.任务的代码模板 3.任务小结或知识扩展 4.任务代码模板的参考答案,5.4 游动查询,5.4.4 实践环节 编写一个JSP页面practice5_4.jsp,查询goodsInfo表中的记录,并逆序输出偶数行的记录。,5.5 访问Excel电子

12、表格,5.5.1 核心知识 1创建Excel电子表格 2创建数据源 5.5.2 能力目标 能够灵活使用JDBC-ODBC桥接器的方式访问Excel电子表格。 5.5.3 任务驱动 1.任务的主要内容 编写一个JSP页面readExcel.jsp,在该页面的Java程序片中首先增加一条记录到studentScore工作表中,然后修改某条记录,最后查询全部记录。,5.5 访问Excel电子表格,2.任务的代码模板 readExcel.jsp 3.任务小结或知识扩展 一个Excel电子表格可以有多个工作表,我们使用JDBC-ODBC可以访问该电子表格中的任何一个工作表,就像访问一个数据库中的任意一张

13、表一样。 4.任务代码模板的参考答案 5.5.4 实践环节 在student.xlsx电子表格中新建一个工作表empTable(如图5.20所示),编写一个JSP页面practice5_5.jsp,在该页面中显示empTable工作表中的所有记录,5.6 使用连接池,5.6.1 核心知识 数据库连接池的基本思想是:为数据库连接建立一个“缓冲池”。预先在“缓冲池”中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。可以通过设定连接池最大连接数来防止系统无限度的与数据库连接。更为重要的是,通过连接池的管理机制监视数据库连接的数量及使用情况,为系统开发、测

14、试和性能调整提供依据。,5.6 使用连接池,5.6.2 能力目标 了解连接池的工作原理,灵活使用连接池连接数据库。 5.6.3 任务驱动 1.任务的主要内容 编写一个JSP页面conPool.jsp,在该页面中使用scope为application的bean(由ConnectionPool类负责创建)。该bean创建时,将建立一定数量的连接对象。因此,所有的用户将共享这些连接对象。在JSP页面中使用bean获得一个连接对象,然后使用该连接对象访问数据库中的goodsInfo表(查询出商品价格大于500的商品)。,5.6 使用连接池,2.任务的代码模板 ConnectionPool.java c

15、onPool.jsp 3.任务小结或知识扩展 我们再打开一个新的浏览器窗口运行conPool.jsp页面时,会发现这一次访问的速度要比第一次快得多,而且也比上几节中访问JSP页面的速度要快。 5.6.4 实践环节 编写一个JSP页面pratice5_6.jsp,在该页面中使用和任务中同样的bean获得一个数据库连接对象,然后使用该连接对象查询goodsInfo表中的全部记录。,5.7 其他典型数据库的连接,5.7.1 核心知识 1连接SQL Server2005 2连接MySQL5.5 5.7.2 能力目标 理解使用纯Java数据库驱动程序连接不同类型数据库的原理。 5.7.4 实践环节 参考

16、本节任务中的主要内容,使用MySQL创建一个数据库yourdatabase,在该数据库中创建一张表student,并编写程序操作该表。,5.8 PreparedStatement的使用,5.8.1 核心知识 可以使用Connection的对象con调用prepareStatement(String sql)方法对参数sql指定的SQL语句进行预先编译,生成数据库的底层命令,并将该命令封装在PreparedStatement对象中。对于SQL语句中会变动的部分,可以使用通配符“?”代替。例如: PreparedStatement ps=con. prepareStatement(“insert into goodsInfo values(?,?,?,?)“; 然后使用对应的setXxx(int parameterIndex,xxx value)方法指定“?”代表的值,其中参数parameterIndex用来表示SQL语句中从左到右的第parameterIndex个通配符号,value代表该通配符所代表的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号