Author: 江南白衣
(作为入门文档将重写)
通过CRUD模块的开发,初步感受SpringSide的架构模式。7步成诗,8步才开发一个CRUD,J2EE还真不轻省啊。
我们用的是找出领域实体,设计数据库,生成hbm和POJO,编写代码的路线
大家也可以选择找出领域实体,编写POJO,添加XDoclet Annotation生成hbm和DDL,编写代码的纯OO方式。
HQLDB的操作指南见相关章节 。
参考项目中的几个hbm与pojo,分别代表了几种典型情况:
customer--普通表 ,product-book---继承影射,orders--父子关系表
可以手工编写,也可以使用自己喜欢的工具如MyEclipse自动生成。
我们建议除非是做一些框架性的东西,普通项目DAO与Manager可以合一。
一般继承于BaseHibernateDAO。基类里已存在默认的CRUD函数,子类只要用泛型语法声明自己管理的Entity类型如public class BookManager extends BaseHibernateDao<Book> 。详见持久层 。
商业逻辑的加入参看OrderManager.java。如有业务异常,参见OrderException。
基础的ApplicationContext.xml已配好。只要往applicationContext-manager.xml文件 依样添加新的service类即可,注意有非规则命名(get*,save*)的函数命名,要补充事务控制说明,参见OrderManager的节点。
Dao测试用例基于BaseDaoTest, 参考BookManagerTest和OrderManagerTest的方式进行CRUD测试。
为了测试前后的数据保持,
目前算法是默认回退,hibernate并不实际执行SQL命令。
亦可选择默认提交看实际数据库操作的情况,测试后双击
load-default.bat重新从default-data.script初始化数据库。
参考BookManagerController.java,继承BaseManageController并参见Controller层文档 进行编写.
注意BaseManageController是团队推荐的CRUD Controller,已经作了某些默认规定,只要实现某些回调函数即可。如果你想自己随便编写,可继承于BaseController。
可以选择编写Controller的UnitTestCase,但不强制。
依样修改bookstore-servlet.xml文件
参考listBook.jsp 和 editBook.jsp
注意使用JSP2.0 EL语法
使用extremetable 显示多功能表格
用jodd-form 简化绑定vo与form的绑定
用spring-bind 在edit页 绑定bind and validate 出错信息