- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
相关回顾 如何对SqlServer数据库进行连接和访问? 如何创建Session对象? 如何操纵Session中的对象? 上机目标 升级网上订餐系统,实现如下功能 1、建立对数据库的连接和访问 2、实现餐品展示页面从数据库中读取并显示餐品信息 训练技能点 数据库的建立、连接和访问 Session对象的创建 操纵Session中的对象 阶段1 开发环境准备 1、在restrant工程/src目录下建立/ch03目录 2、在restrant工程/webRoot目录下建立/ch03目录 3、在/webRoot目录下,将/ch02目录下除error.jsp外的所有文件复制到/ch03目录中 阶段3 阶段7 总结 讲解要点: 假定该系统的数据库设计需要两张表:帐户信息表(bank)存放帐户的信息, 交易信息表(transInfo)存放每次的交易信息。 演示:“示例1:为什么需要触发器.sql”,演示时请设置为较大字体, 以便后排的学员能看清演示的结果。 提问学员:上述结果有什么错误?您一定发现了,当张三取钱200元时,虽然交易信息表(transInfo)中保存了取钱200元的交易信息,但帐户表(bank)中的余额仍是1000,没有自动跟随修改。显然,我们应该根据交易类型是“支取”还是“存入”,自动减少或增加帐户表中的余额。而且,它还应该具有事务的特征:一旦交易失败,余额修改也应该自动取消 。 提问学员:如何解决呢?这种特殊的业务规则使用普通约束行吗 ? 答案显然是否定的 。 使用事务行吗?事务能保证一旦交易失败,余额修改也自动取消。但实现不了自动修改的触发功能 。 最优的解决方案就是采用触发器,它是一种特殊的存储过程,并且也具有事务的功能。它能多表之间执行特殊的业务规则或保持复杂的数据逻辑关系 。 * * * 第三章上机 基于Servlet的会话跟踪(一) 教员讲解上机目标 餐品内容从数据库中动态读取 点击餐品图片、餐品名称或‘详情’按钮,会跳转到餐品详细信息页面/ch03/details.jsp 开发环境准备 训练要点: 数据库的建立和连接 需求说明: 1、建立网上订餐系统数据库环境 2、建立数据库连接 讲解需求说明 阶段2 实现思路及关键代码: 1、在SqlServer查询分析器中导入建库脚本(教员提供) 2、在restrant工程中导入SqlServer的JDBC驱动(教员提供) 3、网上订餐系统数据库连接类 (阶段3完成) Class.forName(DRIVER_CLASS); Connection dbConnection = DriverManager.getConnection( DATABASE_URL,DATABASE_USRE, DATABASE_PASSWORD); // 根据类中定义的数据库连接参数,取得数据库连接 完成时间:10分钟 讲解实现思路和关键代码 阶段2 需求说明: 1、创建网上订餐系统数据库连接类DBConnection.java 2、创建网上订餐系统餐品信息类FoodBean.java DBConnection.java FoodBean.java 完成时间:20分钟 阶段3 常见调试问题及解决办法 代码规范问题 共性问题集中讲解 训练要点: 数据库访问 需求说明: 网上订餐系统-餐品数据库信息访问类实现思路 讲解需求说明 阶段4 实现思路及关键代码: 1、取得数据库连接 2、从数据库foodInfo表中得到数据集 Connection connection = DBConnection.getConnction(); PrepareStatement foodsQuery = connection.prepareStatement( SELECT * FROM foodInfo ORDER BY foodID); ResultSet results = foodsQuery.executeQuery(); // 用上阶段编写的数据库连接类取得数据库连接 // 将查询到的数据集放入ResultSet对象中 讲解实现思路和关键代码 阶段4 实现思路及关键代码: 3、逐行读取行数据,放入列表中 while (results.next()) { FoodBean food = new FoodBean(); ...... foodsList.add(food); // 从数据集中逐行读取行数据 // 将行数据封装在FoodBean对象中 // 将FoodBean对象保存在列表中 阶段4
文档评论(0)