读书人

用enum轮换简单字典服务

发布时间: 2012-11-03 10:57:44 作者: rapoo

用enum替换简单字典服务
很多应用中会用到字典服务,每次构建一个新应用的时候,整理字典是必不可少的工作,然后字典的录入更是一个费力的差事,大的字典也就无妨了,因为录入一次以后基本上就可以反复重用了,比如省市区三级数据联动。

在一些小的字典应用中,可以考虑使用enum来替代,enum的使用我不多介绍,我们定义一个enum肯定是要在程序中随处引用,但是最终的数据都是要持久化的,比如产品的状态(productState),然后页面端的form也要使用可选择值的控件<select><radio>等,这里讲一下如何把前后台的枚举联系起来。


假设我们有一个很简单的项目就是把产品类入库,然后按照不同状态查询出来:

1.定义一个枚举

return (List<Product>) this.getHibernateTemplate().execute(new HibernateCallback(){public Object doInHibernate(Session session) throws HibernateException, SQLException {Criteria ca = session.createCriteria(Product.class);ca.add(Expression.eq("state",ProductState .valueOf(1))); return ca.list();}});


上面的1就可以使用参数传递进来了,或者构建自己的抽象查询对象,返回的product对象就可以按照house.getState()直接返回“已审核”的中文值了,剩下的就是页面端的事情了。

对于页面端得显示,直接调用${porduct.state}就可以看到对应的中文的值了,如果需要更新操作的话,我的办法是把enum转换成map,这样key和value都有了!这种方法在对应大的字典集或者父子字典集的时候并不会减少工作量,要谨慎使用!

读书人网 >软件架构设计

热点推荐