第5章 JSP访问数据库_第1页
第5章 JSP访问数据库_第2页
第5章 JSP访问数据库_第3页
第5章 JSP访问数据库_第4页
第5章 JSP访问数据库_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社第第5 5章章 JSPJSP访问数据库访问数据库主要内容主要内容 使用使用JDBC-ODBCJDBC-ODBC桥接器连接数据库桥接器连接数据库 使用纯使用纯JavaJava数据库驱动程序连接数据库数据库驱动程序连接数据库 Statement Statement、ResultSetResultSet的使用的使用 游动查询游动查询 访问访问ExcelExcel电子表格电子表格 使用连接池使用连接池 其他典型数据库的连接其他典型数据库的连接 预处理语句的使用预处理语句的使用无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.

2、1 5.1 使用使用JDBC-ODBCJDBC-ODBC桥接器连接数据库桥接器连接数据库5.1.1 5.1.1 核心知识核心知识使用使用JDBC-ODBCJDBC-ODBC桥接器连接数据库的机制是:将连接桥接器连接数据库的机制是:将连接数据库的相关信息提供给数据库的相关信息提供给JDBC-ODBCJDBC-ODBC驱动程序,然后转换驱动程序,然后转换成成JDBCJDBC接口,供应用程序使用,而和数据库的连接由接口,供应用程序使用,而和数据库的连接由ODBCODBC完成。完成。5.1.2 5.1.2 能力目标能力目标 掌握掌握JDBC-ODBCJDBC-ODBC桥接器连接数据库的方法。桥接器连接

3、数据库的方法。5.1.3 5.1.3 任务驱动任务驱动1 1创建待连接的创建待连接的Microsoft AccessMicrosoft Access数据库数据库2 2建立建立JDBC-ODBCJDBC-ODBC桥接器桥接器3 3创建创建ODBCODBC数据源数据源无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.1 5.1 使用使用JDBC-ODBCJDBC-ODBC桥接器连接数据库桥接器连接数据库4 4和和ODBCODBC数据源指定的数据库建立连接数据源指定的数据库建立连接5 5在在JSPJSP页面中使用页面中使用JDBC-ODBCJDBC-ODBC桥接器连接数据库桥接器连接

4、数据库编写一个编写一个JSPJSP页面页面example5_1.jspexample5_1.jsp,该页面中的,该页面中的JavaJava程序片代码使用程序片代码使用JDBC-ODBCJDBC-ODBC桥接器连接到数据源桥接器连接到数据源myGodmyGod,查,查询询goodsInfogoodsInfo表中的全部记录。页面运行效果如图表中的全部记录。页面运行效果如图5.85.8所示。所示。无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.1 5.1 使用使用JDBC-ODBCJDBC-ODBC桥接器连接数据库桥接器连接数据库5.1.4 5.1.4 实践环节实践环节 参考本节任

5、务中的主要内容,创建数据源参考本节任务中的主要内容,创建数据源mySkymySky,该,该数据源指定的数据库是数据源指定的数据库是goods.accdbgoods.accdb。编写一个编写一个JSPJSP页面页面practice5_1.jsppractice5_1.jsp,该页面中的,该页面中的JavaJava程序片代码使用程序片代码使用JDBC-ODBCJDBC-ODBC桥接器连接到数据源桥接器连接到数据源mySkymySky,查,查询询goodsInfogoodsInfo表中表中goodsPricegoodsPrice字段值大于字段值大于100100的全部记录。的全部记录。页面运行效果如图

6、页面运行效果如图5.95.9所示。所示。无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.2 5.2 使用纯使用纯JavaJava数据库驱动程序连接数据库数据库驱动程序连接数据库5.2.1 5.2.1 核心知识核心知识使用纯使用纯JavaJava数据库驱动程序连接数据库,需要经过两个步骤:数据库驱动程序连接数据库,需要经过两个步骤:注册纯注册纯JavaJava数据库驱动程序数据库驱动程序和指定的数据库建立连接和指定的数据库建立连接无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.2 5.2 使用纯使用纯JavaJava数据库驱动程序连接数据库数据库驱动程序连接数

7、据库1 1注册纯注册纯JavaJava数据库驱动程序数据库驱动程序每种数据库都配有自己的纯每种数据库都配有自己的纯JavaJava数据库驱动程序。数据库驱动程序。Oracle10gOracle10g的纯的纯JavaJava驱动程序一般位于数据库安装目录驱动程序一般位于数据库安装目录“oracleproduct10.2.0db_1jdbcliboracleproduct10.2.0db_1jdbclib”下,名为下,名为classes12.jarclasses12.jar。try try Class.forName(oracle.jdbc.driver.OracleDriver);Class.f

8、orName(oracle.jdbc.driver.OracleDriver); catch (ClassNotFoundException e) catch (ClassNotFoundException e) e.printStackTrace();e.printStackTrace(); 无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.2 5.2 使用纯使用纯JavaJava数据库驱动程序连接数据库数据库驱动程序连接数据库2 2和指定的数据库建立连接和指定的数据库建立连接和和OracleOracle数据库建立连接的代码如下:数据库建立连接的代码如下:try try Co

9、nnection Connection con=DriverManager.getConnection(jdbc:oracle:thin:con=DriverManager.getConnection(jdbc:oracle:thin:主机主机: :端口端口号号: :数据库名数据库名, 用户名用户名,密码密码);); catch (SQLException e) catch (SQLException e) e.printStackTrace();e.printStackTrace(); 无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.2 5.2 使用纯使用纯JavaJava

10、数据库驱动程序连接数据库数据库驱动程序连接数据库5.2.2 5.2.2 能力目标能力目标掌握纯掌握纯JavaJava数据库驱动程序连接数据库的方法。数据库驱动程序连接数据库的方法。5.2.3 5.2.3 任务驱动任务驱动1.1.任务的主要内容任务的主要内容编写一个编写一个JSPJSP页面页面example5_2.jspexample5_2.jsp,该页面的,该页面的JavaJava程程序片代码使用纯序片代码使用纯JavaJava驱动程序连接驱动程序连接OracleOracle数据库,查询数据库,查询goodsInfogoodsInfo表中的全部记录。表中的全部记录。2.2.任务的代码模板任务的

11、代码模板example5_2.jspexample5_2.jsp无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.2 5.2 使用纯使用纯JavaJava数据库驱动程序连接数据库数据库驱动程序连接数据库3.3.任务小结或知识扩展任务小结或知识扩展从任务中我们可以看出编写程序访问数据库需要有以从任务中我们可以看出编写程序访问数据库需要有以下几个步骤:下几个步骤:导入导入java.sqljava.sql包包加载驱动程序加载驱动程序连接数据库连接数据库访问数据库访问数据库处理返回的结果集处理返回的结果集关闭数据库连接,释放资源关闭数据库连接,释放资源4.4.任务代码模板的参考答案任务

12、代码模板的参考答案无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.2 5.2 使用纯使用纯JavaJava数据库驱动程序连接数据库数据库驱动程序连接数据库5.2.4 5.2.4 实践环节实践环节编写一个编写一个JSPJSP页面页面practice5_2.jsppractice5_2.jsp,该页面中的,该页面中的JavaJava程序片代码使用纯程序片代码使用纯JavaJava数据库驱动程序连接数据库驱动程序连接OracleOracle数据库,数据库,查询查询goodsInfogoodsInfo表中表中goodsPricegoodsPrice字段值大于字段值大于1010并小于并

13、小于5050的的全部记录。全部记录。无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.3 Statement5.3 Statement、ResultSetResultSet的使用的使用5.3.1 5.3.1 核心知识核心知识和数据库建立连接之后,接下来若要执行和数据库建立连接之后,接下来若要执行SQLSQL语句,语句,需要有以下几个步骤:需要有以下几个步骤:1 1创建创建StatementStatement对象对象2 2执行执行SQLSQL语句语句3 3处理返回的处理返回的ResultSetResultSet对象对象5.3.2 5.3.2 能力目标能力目标能够灵活使用能够灵活使

14、用StatementStatement与与ResultSetResultSet对象对数据库进对象对数据库进行增删改查。行增删改查。无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.3 Statement5.3 Statement、ResultSetResultSet的使用的使用5.3.3 5.3.3 任务驱动任务驱动1.1.任务的主要内容任务的主要内容编写两个编写两个JSPJSP页面:页面:addGoods.jspaddGoods.jsp和和showAllGoods.jspshowAllGoods.jsp。用户可以在。用户可以在addGoods.jspaddGoods.jsp页

15、面中输入页面中输入信息后,点击信息后,点击“添加添加”按钮把信息添加到按钮把信息添加到goodsInfogoodsInfo表中。表中。然后,在然后,在showAllGoods.jspshowAllGoods.jsp页面中显示所有商品信息。在页面中显示所有商品信息。在该任务中需要编写一个该任务中需要编写一个beanbean(GoodsBean.javaGoodsBean.java),用来实),用来实现添加和查询记录。现添加和查询记录。2.2.任务的代码模板任务的代码模板addGoods.jsp showAllGoods.jsp GoodsBean.javaaddGoods.jsp showAll

16、Goods.jsp GoodsBean.java无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.3 Statement5.3 Statement、ResultSetResultSet的使用的使用3.3.任务小结或知识扩展任务小结或知识扩展ResultSetResultSet对象自动维护指向其当前数据行的游标。每调用一次对象自动维护指向其当前数据行的游标。每调用一次next()next()方方法,游标向下移动一行。最初它位于结果集的第一行之前,因此第一次调用法,游标向下移动一行。最初它位于结果集的第一行之前,因此第一次调用next()next(),将把游标置于第一行上,使它成为

17、当前行。随着每次调用,将把游标置于第一行上,使它成为当前行。随着每次调用next()next(),游,游标依次向下移动一行,按照从上至下的顺序获取标依次向下移动一行,按照从上至下的顺序获取ResultSetResultSet行,实现顺序查询。行,实现顺序查询。ResultSetResultSet对象包含对象包含SQLSQL语句的执行结果。它通过一套语句的执行结果。它通过一套getget方法对这些行中数据的方法对这些行中数据的访问,即使用访问,即使用getXxxgetXxx方法获得数据。方法获得数据。getget方法很多,究竟用哪一个方法很多,究竟用哪一个getXxx()getXxx()方法,方

18、法,由列的数据类型来决定。使用由列的数据类型来决定。使用getXxxgetXxx方法时,需要注意以下两点:方法时,需要注意以下两点:无论列是何种数据类型,都可以使用无论列是何种数据类型,都可以使用getString(int columnIndex)getString(int columnIndex)或或getString(String columnName)getString(String columnName)方法获得列值的字符串表示。方法获得列值的字符串表示。如果使用如果使用getString(int columnIndex)getString(int columnIndex)方法查看一行

19、记录时,不允许颠倒顺方法查看一行记录时,不允许颠倒顺序,例如不允许:序,例如不允许:rs.getString(2);rs.getString(2);rs.getString(1);rs.getString(1);无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.3 Statement5.3 Statement、ResultSetResultSet的使用的使用5.3.4 5.3.4 实践环节实践环节编写两个编写两个JSPJSP页面:页面:inputQuery.jspinputQuery.jsp和和showGoods.jspshowGoods.jsp。用户可以在用户可以在input

20、Query.jspinputQuery.jsp页面输入查询条件后,点击页面输入查询条件后,点击“查询查询”按钮。然后,在按钮。然后,在showGoods.jspshowGoods.jsp页面中显示符合页面中显示符合查询条件的商品信息。在本节任务的查询条件的商品信息。在本节任务的beanbean(GoodsBean.javaGoodsBean.java)中添加一个方法)中添加一个方法getQueryResultBy()getQueryResultBy()实现该题的条件查询功能。实现该题的条件查询功能。无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.4 5.4 游动查询游动查询5

21、.4.1 5.4.1 核心知识核心知识为了获得滚动结果集,必须先用下面的方法得到一个为了获得滚动结果集,必须先用下面的方法得到一个StatementStatement对象:对象: Statement st=con.createStatement(int type, int Statement st=con.createStatement(int type, int concurrency);concurrency);根据根据typetype和和concurrencyconcurrency的取值,当执行的取值,当执行ResultSet ResultSet rs=st.executeQuery(S

22、tring sql)rs=st.executeQuery(String sql)时,会返回不同类型的时,会返回不同类型的结果集。结果集。5.4.2 5.4.2 能力目标能力目标 能够灵活使用滚动结果集进行游动查询。能够灵活使用滚动结果集进行游动查询。无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.4 5.4 游动查询游动查询5.4.3 5.4.3 任务驱动任务驱动1.1.任务的主要内容任务的主要内容编写一个编写一个JSPJSP页面页面randomQuery.jsprandomQuery.jsp,查询,查询goodsInfogoodsInfo表中的全部记录,并将结果逆序输出,最

23、后单独输出第表中的全部记录,并将结果逆序输出,最后单独输出第4 4条记录。条记录。2.2.任务的代码模板任务的代码模板3.3.任务小结或知识扩展任务小结或知识扩展4.4.任务代码模板的参考答案任务代码模板的参考答案无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.4 5.4 游动查询游动查询5.4.4 5.4.4 实践环节实践环节编写一个编写一个JSPJSP页面页面practice5_4.jsppractice5_4.jsp,查询,查询goodsInfogoodsInfo表中的记录,并逆序输出偶数行的记录。表中的记录,并逆序输出偶数行的记录。无限挑战 无限飞翔JSP网站设计教学

24、做一体化教程清华大学出版社5.5 5.5 访问访问ExcelExcel电子表格电子表格5.5.1 5.5.1 核心知识核心知识1 1创建创建ExcelExcel电子表格电子表格2 2创建数据源创建数据源5.5.2 5.5.2 能力目标能力目标能够灵活使用能够灵活使用JDBC-ODBCJDBC-ODBC桥接器的方式访问桥接器的方式访问ExcelExcel电子电子表格。表格。5.5.3 5.5.3 任务驱动任务驱动1.1.任务的主要内容任务的主要内容编写一个编写一个JSPJSP页面页面readExcel.jspreadExcel.jsp,在该页面的,在该页面的JavaJava程序片中首程序片中首先

25、增加一条记录到先增加一条记录到studentScorestudentScore工作表中,然后修改某条记录,最后工作表中,然后修改某条记录,最后查询全部记录。查询全部记录。无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.5 5.5 访问访问ExcelExcel电子表格电子表格2.2.任务的代码模板任务的代码模板readExcel.jspreadExcel.jsp3.3.任务小结或知识扩展任务小结或知识扩展一个一个ExcelExcel电子表格可以有多个工作表,我们使用电子表格可以有多个工作表,我们使用JDBC-ODBCJDBC-ODBC可以访问该电子表格中的任何一个工作表,就可以

26、访问该电子表格中的任何一个工作表,就像访问一个数据库中的任意一张表一样。像访问一个数据库中的任意一张表一样。4.4.任务代码模板的参考答案任务代码模板的参考答案5.5.4 5.5.4 实践环节实践环节在在student.xlsxstudent.xlsx电子表格中新建一个工作表电子表格中新建一个工作表empTableempTable(如图(如图5.205.20所示),编写一个所示),编写一个JSPJSP页面页面practice5_5.jsppractice5_5.jsp,在该页面中显示在该页面中显示empTableempTable工作表中的所有记录工作表中的所有记录无限挑战 无限飞翔JSP网站设

27、计教学做一体化教程清华大学出版社5.6 5.6 使用连接池使用连接池5.6.1 5.6.1 核心知识核心知识数据库连接池的基本思想是:为数据库连接建立一个数据库连接池的基本思想是:为数据库连接建立一个“缓冲池缓冲池”。预先在。预先在“缓冲池缓冲池”中放入一定数量的连接,中放入一定数量的连接,当需要建立数据库连接时,只需从当需要建立数据库连接时,只需从“缓冲池缓冲池”中取出一个,中取出一个,使用完毕之后再放回去。可以通过设定连接池最大连接数使用完毕之后再放回去。可以通过设定连接池最大连接数来防止系统无限度的与数据库连接。更为重要的是,通过来防止系统无限度的与数据库连接。更为重要的是,通过连接池的

28、管理机制监视数据库连接的数量及使用情况,为连接池的管理机制监视数据库连接的数量及使用情况,为系统开发、测试和性能调整提供依据。系统开发、测试和性能调整提供依据。无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.6 5.6 使用连接池使用连接池5.6.2 5.6.2 能力目标能力目标了解连接池的工作原理,灵活使用连接池连接数据库。了解连接池的工作原理,灵活使用连接池连接数据库。5.6.3 5.6.3 任务驱动任务驱动1.1.任务的主要内容任务的主要内容编写一个编写一个JSPJSP页面页面conPool.jspconPool.jsp,在该页面中使用,在该页面中使用scopescop

29、e为为applicationapplication的的beanbean(由(由ConnectionPoolConnectionPool类负责创类负责创建)。该建)。该beanbean创建时,将建立一定数量的连接对象。因此,创建时,将建立一定数量的连接对象。因此,所有的用户将共享这些连接对象。在所有的用户将共享这些连接对象。在JSPJSP页面中使用页面中使用beanbean获得一个连接对象,然后使用该连接对象访问数据库中的获得一个连接对象,然后使用该连接对象访问数据库中的goodsInfogoodsInfo表(查询出商品价格大于表(查询出商品价格大于500500的商品)。的商品)。无限挑战 无限

30、飞翔JSP网站设计教学做一体化教程清华大学出版社5.6 5.6 使用连接池使用连接池2.2.任务的代码模板任务的代码模板ConnectionPool.javaConnectionPool.javaconPool.jspconPool.jsp3.3.任务小结或知识扩展任务小结或知识扩展我们再打开一个新的浏览器窗口运行我们再打开一个新的浏览器窗口运行conPool.jspconPool.jsp页页面时,会发现这一次访问的速度要比第一次快得多,而且面时,会发现这一次访问的速度要比第一次快得多,而且也比上几节中访问也比上几节中访问JSPJSP页面的速度要快。页面的速度要快。5.6.4 5.6.4 实践

31、环节实践环节编写一个编写一个JSPJSP页面页面pratice5_6.jsppratice5_6.jsp,在该页面中使用,在该页面中使用和任务中同样的和任务中同样的beanbean获得一个数据库连接对象,然后使用获得一个数据库连接对象,然后使用该连接对象查询该连接对象查询goodsInfogoodsInfo表中的全部记录。表中的全部记录。无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.7 5.7 其他典型数据库的连接其他典型数据库的连接5.7.1 5.7.1 核心知识核心知识1 1连接连接SQL Server2005SQL Server20052 2连接连接MySQL5.5M

32、ySQL5.55.7.2 5.7.2 能力目标能力目标理解使用纯理解使用纯JavaJava数据库驱动程序连接不同类型数据库数据库驱动程序连接不同类型数据库的原理。的原理。5.7.4 5.7.4 实践环节实践环节参考本节任务中的主要内容,使用参考本节任务中的主要内容,使用MySQLMySQL创建一个数创建一个数据库据库yourdatabaseyourdatabase,在该数据库中创建一张表,在该数据库中创建一张表studentstudent,并编写程序操作该表。并编写程序操作该表。无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.8 PreparedStatement5.8 Pr

33、eparedStatement的使用的使用5.8.1 5.8.1 核心知识核心知识可以使用可以使用ConnectionConnection的对象的对象concon调用调用prepareStatement(String prepareStatement(String sql)sql)方法对参数方法对参数sqlsql指定的指定的SQLSQL语句进行预先编译,生成数据库的底层语句进行预先编译,生成数据库的底层命令,并将该命令封装在命令,并将该命令封装在PreparedStatementPreparedStatement对象中。对于对象中。对于SQLSQL语句中语句中会变动的部分,可以使用通配符会变动

34、的部分,可以使用通配符“? ?”代替。例如:代替。例如:PreparedStatement ps=con. prepareStatement(insert into PreparedStatement ps=con. prepareStatement(insert into goodsInfo values(?,?,?,?);goodsInfo values(?,?,?,?);然后使用对应的然后使用对应的setXxx(int parameterIndex,xxx value)setXxx(int parameterIndex,xxx value)方法方法指定指定“? ?”代表的值,其中参数代表

35、的值,其中参数parameterIndexparameterIndex用来表示用来表示SQLSQL语句中从语句中从左到右的第左到右的第parameterIndexparameterIndex个通配符号,个通配符号,valuevalue代表该通配符所代表代表该通配符所代表的具体值。的具体值。无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.8 PreparedStatement5.8 PreparedStatement的使用的使用5.8.2 5.8.2 能力目标能力目标能够灵活使用预处理语句对象操作数据库中的表。能够灵活使用预处理语句对象操作数据库中的表。5.8.3 5.8.3

36、任务驱动任务驱动1.1.任务的主要内容任务的主要内容编写两个编写两个JSPJSP页面:页面:inputPrepareGoods.jspinputPrepareGoods.jsp和和showPrepareGoods.jspshowPrepareGoods.jsp。用户可以在。用户可以在inputPrepareGoods.jspinputPrepareGoods.jsp页面中输入信息后,点击页面中输入信息后,点击“添加添加”按钮把信息添加到按钮把信息添加到goodsInfogoodsInfo表中。然后,在表中。然后,在showPrepareGoods.jspshowPrepareGoods.jsp页面中显示所有商品信息。在该任页面中显示所有商品信息。在该任务中需要编写一个务中需要编写一个beanbean(UsePrepare.javaUsePrepare.java),),beanbean中使中使用预处理语句向用预处理语句向goodsInfogoodsInfo表中添加记录。表中添加记录。无限挑战 无限飞翔JSP网站设计教学做一体化教程清华大学出版社5.8 PreparedStatement5.8 PreparedStatement的使用的使用3.3.任务小结或知识扩展任务小结或知识扩展StatementStatement在执行在执行executeQuery(String

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论