今天是雷辉老师来给大家分析JPetStore和讲解他们公司的工作流产品。
主要分析了ibatis的JPetStore中的翻页功能与购物车的实现代码:
翻页是通过PaginatedDataList来实现的,其中包括如下一些信息:
private SqlMapExecutor sqlMapExecutor; //ibatis自己操作数据库的对象
private String statementName; //ibatis中对应sql配置文件的那个id
private Object parameterObject; //一些参数,用来传递到配置文件的sql语句中
private int pageSize;//每页数据的条数
private int index;//当前页面是第几页,或者把页面跳转到第几页
//下面三个list是为了方便翻页功能做的,以后每次翻页时候,会在这三个list之间交换数据,而且在适当的时候,会从数据库中读取数据到某个list中。
private List prevPageList;//前页的list
private List currentPageList;//当前页的list
private List nextPageList;//下一页的list
购物车是通过Cart对象来实现的,Cart维持许多CartItem得数据,可以在jsp页面中查看当前购物车中有哪些商品,同时允许我们给Cart的数据模型中add数据和remove数据。此外再提供一些计算总体价格得功能等:
Cart-->CartItem(包括每个产品项的数量、总金额、是否有货)-->Item(包括产品的上柜价格、生成日期、结束日期等附加信息)-->Product(包含产品的通用信息)
List有排序,Map可以通过id取出元素,所以,这就是Cart中同时有List和Map来保持CartItem的原因。
价格的类型都是BigDecimal。
Spring的JPetStore与Ibatis的JPetStore的比较分析,Spring提供了大量的胶水代码。
中午蒋汉文问了一个问题:对于Form表单,既可以用JavaScript校验,又可以用后台的Java程序进行校验,在项目中到底用哪个进行校验呢?如果用了JavaScript校验,还要不要使用后台的Java程序进行校验呢?我以前就讲过这个问题,可能他当时没有注意。另外,我顺便提醒了他,在写每个函数时,都要对输入参数进行校验,如果A函数调用了B函数,即使A函数对传递给B函数的参数进行了校验,那在B函数中也要对参数进行校验。
雷辉老师下午讲解了他们公司的工作流产品的应用:工作流引擎、Builder、Portal之间的关系。真正意义上的Portal用于业务集成。
工作流中的变量叫什么名字?数据项。
一个没有讲解的重要问题:一个工作流模版到工作流实例的程序代码实现细节,以及工作流实例产生的运行状态信息是如何产生和如何保存的。希望雷辉老师和梁言兵老师下次都能重点分析这个问题。
分享到:
相关推荐
**jpetstore** 是一个由Sun Microsystems公司开发的开源Web应用程序示例,它是一个基于Java技术的网上...通过研究和实践jpetstore,开发者可以深入理解Java EE平台的工作原理,并掌握构建实际Web应用所需的关键技能。
jpetstore5.0系统架构图不仅是对系统内部工作原理的一次全面展示,更是对MVC模式、Struts框架、iBatis(MyBatis)数据持久层框架及Spring框架等关键技术的综合应用。通过深入解析这张架构图,我们不仅能学到如何构建...
3. **JDBC(Java Database Connectivity)**:JDBC是Java访问数据库的标准API,jpetstore会使用它与数据库进行交互,如添加、更新和查询商品信息,以及处理用户订单。 4. **Servlet和JSP(JavaServer Pages)**:在...
在JpetStore中,我们可以通过Spring的数据访问抽象层进行数据库操作,这既简化了数据库操作,又保持了与具体数据库实现的解耦。 Spring的测试支持也是其强大之处。JpetStore项目中的单元测试和集成测试可以利用...
在压缩包文件名称 "springapp-petclinic" 中,"petclinic"可能是JPetStore的一个变体或者相关项目,通常Spring PetClinic是一个与JPetStore类似的学习资源,用于教授Spring Boot和Spring Data JPA等现代Spring技术。...
4. **EJB(Enterprise JavaBeans)**:虽然JPetStore 4.0主要使用了轻量级框架,但在一些复杂的企业级应用中,EJB可能会被用于实现更高级的服务和事务管理。 5. **数据库连接**:通常,JPetStore会使用如MySQL或...
通过设置断点、查看日志等方式,可以深入理解各个组件的工作原理。 总的来说,jpetstore项目是一个非常实用的学习资源,对于想要掌握Struts和Spring整合应用的开发者来说尤其有价值。通过实际操作,不仅可以了解...
《基于jpetstore的Spring、iBatis与Struts整合实战》 jpetstore项目是Spring框架的一个经典示例,它全面展示了如何将Spring、iBatis和Struts这三个核心的Java Web技术进行集成,构建出一个完整的MVC(Model-View-...
《JPetStore-5.0:一个基于iBatis的开源电商示例解析》 JPetStore-5.0是一个著名的开源项目,它基于iBatis数据持久层框架,为开发者提供了一个完整的电子商务应用程序示例。这个项目由Apache Software Foundation...
iBATIS JPetStore是一个经典的开源项目,它用于展示iBATIS框架在实际应用中的使用。iBATIS是一个数据持久层框架,它简化了Java应用程序与数据库之间的交互,避免了直接编写大量的SQL语句。JPetStore是基于iBATIS实现...
总结来说,jpetstore4.0项目利用Spring、Struts和iBatis的协同工作,实现了高效、可扩展的电子商务系统。这个项目对于学习和理解Java Web开发中的MVC架构、依赖注入、数据库操作等核心概念具有很高的参考价值。同时...
7. **lib**:库文件目录,这里存放着项目运行所需的第三方依赖库,如iBATIS库、Spring框架库、log4j日志库等。 在iBATIS_JPetStore-4.0.5项目中,iBATIS作为核心数据访问组件,负责处理SQL查询和结果映射。它通过...
使用了mybatis的jpetstore-6
**jpetstore源码详解** `jpetstore`是一个经典的示例项目,它展示了如何使用Java企业级开发框架实现一个完整的网上宠物商店。这个源码是基于特定版本的Java技术栈构建的,如Spring框架、Struts框架或者MyBatis等,...
**标题解析:** "JPetStore (Struts + Spring + Hibernate)版" 是一个基于Java技术的开源电子商务示例应用,它集成了Struts、Spring和Hibernate三个关键的开源框架。这个版本相较于之前的JPetStore5.0,进行了重要的...
《MyEclipse中加载Spring的JPetStore详解》 在软件开发领域,Spring框架以其强大的功能和灵活性,已经成为Java企业级应用开发的事实标准。而MyEclipse作为一款强大的Java集成开发环境,为开发者提供了便捷的Spring...
- **日志管理**:log4j **2. 安装与导入** - 在Eclipse中创建新项目,导入源代码,设置好源文件路径和类路径。 - 对于SQL Server 2000,按照文档指示创建数据库并执行建表脚本。 **3. 特别注意事项** - 在使用...
【标题】"springMVC+mybatis+jpetstore工程源码"揭示了这是一个结合了SpringMVC、MyBatis和jpetstore示例项目的工程,主要用于演示如何在实际开发中整合这三个技术。SpringMVC是Spring框架的一个模块,用于处理Web...