无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社第5章JSP访问数据库主要内容使用JDBC-ODBC桥接器连接数据库使用纯Java数据库驱动程序连接数据库Statement、ResultSet的使用游动查询访问Excel电子表格使用连接池其他典型数据库的连接预处理语句的使用无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.1使用JDBC-ODBC桥接器连接数据库5.1.1核心知识使用JDBC-ODBC桥接器连接数据库的机制是:将连接数据库的相关信息提供给JDBC-ODBC驱动程序,然后转换成JDBC接口,供应用程序使用,而和数据库的连接由ODBC完成。5.1.2能力目标掌握JDBC-ODBC桥接器连接数据库的方法。5.1.3任务驱动1.创建待连接的MicrosoftAccess数据库2.建立JDBC-ODBC桥接器3.创建ODBC数据源无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.1使用JDBC-ODBC桥接器连接数据库4.和ODBC数据源指定的数据库建立连接5.在JSP页面中使用JDBC-ODBC桥接器连接数据库编写一个JSP页面example5_1.jsp,该页面中的Java程序片代码使用JDBC-ODBC桥接器连接到数据源myGod,查询goodsInfo表中的全部记录。页面运行效果如图5.8所示。无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.1使用JDBC-ODBC桥接器连接数据库5.1.4实践环节参考本节任务中的主要内容,创建数据源mySky,该数据源指定的数据库是goods.accdb。编写一个JSP页面practice5_1.jsp,该页面中的Java程序片代码使用JDBC-ODBC桥接器连接到数据源mySky,查询goodsInfo表中goodsPrice字段值大于100的全部记录。页面运行效果如图5.9所示。无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.2使用纯Java数据库驱动程序连接数据库5.2.1核心知识使用纯Java数据库驱动程序连接数据库,需要经过两个步骤:注册纯Java数据库驱动程序和指定的数据库建立连接无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.2使用纯Java数据库驱动程序连接数据库1.注册纯Java数据库驱动程序每种数据库都配有自己的纯Java数据库驱动程序。Oracle10g的纯Java驱动程序一般位于数据库安装目录“\oracle\product\10.2.0\db_1\jdbc\lib”下,名为classes12.jar。•try{•Class.forName(oracle.jdbc.driver.OracleDriver);•}catch(ClassNotFoundExceptione){•e.printStackTrace();•}无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.2使用纯Java数据库驱动程序连接数据库2.和指定的数据库建立连接和Oracle数据库建立连接的代码如下:•try{•Connectioncon=DriverManager.getConnection(jdbc:oracle:thin:@主机:端口号:数据库名,•用户名,密码);•}catch(SQLExceptione){•e.printStackTrace();•}无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.2使用纯Java数据库驱动程序连接数据库5.2.2能力目标掌握纯Java数据库驱动程序连接数据库的方法。5.2.3任务驱动1.任务的主要内容编写一个JSP页面example5_2.jsp,该页面的Java程序片代码使用纯Java驱动程序连接Oracle数据库,查询goodsInfo表中的全部记录。2.任务的代码模板example5_2.jsp无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.2使用纯Java数据库驱动程序连接数据库3.任务小结或知识扩展从任务中我们可以看出编写程序访问数据库需要有以下几个步骤:①导入java.sql包②加载驱动程序③连接数据库④访问数据库⑤处理返回的结果集⑥关闭数据库连接,释放资源4.任务代码模板的参考答案无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.2使用纯Java数据库驱动程序连接数据库5.2.4实践环节编写一个JSP页面practice5_2.jsp,该页面中的Java程序片代码使用纯Java数据库驱动程序连接Oracle数据库,查询goodsInfo表中goodsPrice字段值大于10并小于50的全部记录。无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.3Statement、ResultSet的使用5.3.1核心知识和数据库建立连接之后,接下来若要执行SQL语句,需要有以下几个步骤:1.创建Statement对象2.执行SQL语句3.处理返回的ResultSet对象5.3.2能力目标能够灵活使用Statement与ResultSet对象对数据库进行增删改查。无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.3Statement、ResultSet的使用5.3.3任务驱动1.任务的主要内容编写两个JSP页面:addGoods.jsp和showAllGoods.jsp。用户可以在addGoods.jsp页面中输入信息后,点击“添加”按钮把信息添加到goodsInfo表中。然后,在showAllGoods.jsp页面中显示所有商品信息。在该任务中需要编写一个bean(GoodsBean.java),用来实现添加和查询记录。2.任务的代码模板addGoods.jspshowAllGoods.jspGoodsBean.java无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.3Statement、ResultSet的使用3.任务小结或知识扩展ResultSet对象自动维护指向其当前数据行的游标。每调用一次next()方法,游标向下移动一行。最初它位于结果集的第一行之前,因此第一次调用next(),将把游标置于第一行上,使它成为当前行。随着每次调用next(),游标依次向下移动一行,按照从上至下的顺序获取ResultSet行,实现顺序查询。ResultSet对象包含SQL语句的执行结果。它通过一套get方法对这些行中数据的访问,即使用getXxx方法获得数据。get方法很多,究竟用哪一个getXxx()方法,由列的数据类型来决定。使用getXxx方法时,需要注意以下两点:①无论列是何种数据类型,都可以使用getString(intcolumnIndex)或getString(StringcolumnName)方法获得列值的字符串表示。②如果使用getString(intcolumnIndex)方法查看一行记录时,不允许颠倒顺序,例如不允许:rs.getString(2);•rs.getString(1);无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.3Statement、ResultSet的使用5.3.4实践环节编写两个JSP页面:inputQuery.jsp和showGoods.jsp。用户可以在inputQuery.jsp页面输入查询条件后,点击“查询”按钮。然后,在showGoods.jsp页面中显示符合查询条件的商品信息。在本节任务的bean(GoodsBean.java)中添加一个方法getQueryResultBy()实现该题的条件查询功能。无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.4游动查询5.4.1核心知识为了获得滚动结果集,必须先用下面的方法得到一个Statement对象:Statementst=con.createStatement(inttype,intconcurrency);根据type和concurrency的取值,当执行ResultSetrs=st.executeQuery(Stringsql)时,会返回不同类型的结果集。5.4.2能力目标能够灵活使用滚动结果集进行游动查询。无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.4游动查询5.4.3任务驱动1.任务的主要内容编写一个JSP页面randomQuery.jsp,查询goodsInfo表中的全部记录,并将结果逆序输出,最后单独输出第4条记录。2.任务的代码模板3.任务小结或知识扩展4.任务代码模板的参考答案无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.4游动查询5.4.4实践环节编写一个JSP页面practice5_4.jsp,查询goodsInfo表中的记录,并逆序输出偶数行的记录。无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.5访问Excel电子表格5.5.1核心知识1.创建Excel电子表格2.创建数据源5.5.2能力目标能够灵活使用JDBC-ODBC桥接器的方式访问Excel电子表格。5.5.3任务驱动1.任务的主要内容编写一个JSP页面readExcel.jsp,在该页面的Java程序片中首先增加一条记录到studentScore工作表中,然后修改某条记录,最后查询全部记录。无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.5访问Excel电子表格2.任务的代码模板readExcel.jsp3.任务小结或知识扩展一个Excel电子表格可以有多个工作表,我们使用JDBC-ODBC可以访问该电子表格中的任何一个工作表,就像访问一个数据库中的任意一张表一样。4.任务代码模板的参考答案5.5.4实践环节在student.xlsx电子表格中新建一个工作表empTable(如图5.20所示),编写一个JSP页面practice5_5.jsp,在该页面中显示empTable工作表中的所有记录无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.6使用连接池5.6.1核心知识数据库连接池的基本思想是:为数据库连接建立一个“缓冲池”。预先在“缓冲池”中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。可以通过设定连接池最大连接数来防止系统无限度的与数据库连接。更为重要的是,通过连接池的管理机制监视数据库连接的数量及使用情况,为系统开发、测试和性能调整提供依据。无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.6使用连接池5.6.2能力目标了解连接池的工作原理,灵活使用连接池连接数据库。5.6.3任务驱动1.任务的主要内容编写一个JSP页面conPool.jsp,在该页面中使用scope为application的bean(由ConnectionPool类负责创建)。该bean创建时,将建立一定数量的连接对象。因此,所有的用户将共享这些连接对象。在JSP页面中使用bean获得一个连接对象,然后使用该连接对象访问数据库中的goodsInfo表(查询出商品价格大于500的商品)。无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.6使用连接池2.任务的代码模板ConnectionPool.javaconPool.jsp3.任务小结或知识扩展我们再打开一个新的浏览器窗口运行conPool.jsp页面时,会发现这一次访问的速度要比第一次快得多,而且也比上几节中访问JSP页面的速度要快。5.6.4实践环节编写一个JSP页面pratice5_6.jsp,在该页面中使用和任务中同样的bean获得一个数据库连接对象,然后使用该连接对象查询goodsInfo表中的全部记录。无限挑战无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.7其他典型数据库的连接5.7.1核心知识1.连接SQLServer20052.连接MySQL5.55.7.2能力目标理解使用纯Java数据库驱动程序连接不同类型数据库的原理。5