论坛首页 Java企业应用论坛

IBATIS和实体BEAN

浏览 6645 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-11-05  
   最近公司项目经理在整合一个开发框架,用了Spring2.5、IBATIS、STRUTS2。但现在有一个问题很是困扰他,同时也困扰着我。就是要不要定义实体BEAN。

    持久层用IBATIS,而不是Hibernate,如果定义实体BEAN,IBATIS的SQLMAP和实体BEAN里都会有实体BEAN属性的重复代码,这样维护起来会比较麻烦。而且我们的客户经常式样变更,改表结构是家常便饭,到项目后期如果表结构一改,实体BEAN和SQLMAP都会改动,维护起来更加麻烦。

    如果不用实体BEAN,整个持久层就用MAP存数据,这样又没有用实体BEAN方便。

    因此想问问大家,你们有没有遇到过这种情况? 如果不用实体BEAN,怎样做比较好呢? 
   发表时间:2008-11-05  
你能说明为什么用Map不如实体bean方便么?
你给的场景是经常修改数据库表。。
用动态语言或用Map
0 请登录后投票
   发表时间:2008-11-05  
WhisperXD 写道
你能说明为什么用Map不如实体bean方便么?



我觉得在给BEAN装数据的时候,比如userBean.setName("xxx"),要比userMap.put("name","xxx")直观,比较符合人的思维--我要操作的是一个user。
0 请登录后投票
   发表时间:2008-11-05   最后修改:2008-11-05
有一种做法,不知道合不合理。不会写UML,就口头描述了。

定义一个继承自STRUTS2的ActionSupport的超类,放一个MAP属性在里面做为VIEW层的数据载体(不再定义什么VO了)。

所有的ACTION继承这个超类。

页面要表示的值通过map.put("","")存入MAP里,页面上直接通过MAP.XXX的OGNL的写法来显示值。

ACTION里调用SERVICE的方法时,把MAP做为参数传给SERVICE层,SERVICE层里再取出ACTION传过来的MAP里的值,根据业务组装出新的IBATIS用的MAP。不使用DAO,直接在SERVICE里操作DB。



0 请登录后投票
   发表时间:2008-11-05   最后修改:2008-11-05
he_lux 写道



我觉得在给BEAN装数据的时候,比如userBean.setName("xxx"),要比userMap.put("name","xxx")直观,比较符合人的思维--我要操作的是一个user。

在你给的场景里,如果每次修改数据库都需要重写Bean所带来的不方便与用Map所带来的不直观相比,哪个更合适??
0 请登录后投票
   发表时间:2008-11-05  
WhisperXD 写道
he_lux 写道


我觉得在给BEAN装数据的时候,比如userBean.setName("xxx"),要比userMap.put("name","xxx")直观,比较符合人的思维--我要操作的是一个user。

在你给的场景里,如果每次修改数据库都需要重写Bean所带来的不方便与用Map所带来的不直观相比,哪个更合适??


还是用MAP好些。客户后期式样变更太多了,如果用BEAN,要维护的代码就多了。
0 请登录后投票
   发表时间:2008-12-12  
he_lux 写道
WhisperXD 写道
he_lux 写道


我觉得在给BEAN装数据的时候,比如userBean.setName("xxx"),要比userMap.put("name","xxx")直观,比较符合人的思维--我要操作的是一个user。

在你给的场景里,如果每次修改数据库都需要重写Bean所带来的不方便与用Map所带来的不直观相比,哪个更合适??


还是用MAP好些。客户后期式样变更太多了,如果用BEAN,要维护的代码就多了。


只用map不用实体bean开发起来比较麻烦,而且很不面向对象。
0 请登录后投票
   发表时间:2008-12-12   最后修改:2008-12-12
1
用map时间长了
名子空间会冲突.
找bug时会哭死.
所以要有很严格的命名规则.....
2.
改动时.....也会哭死.....
由于没有代码提示....
0 请登录后投票
   发表时间:2008-12-12  
用map还不如用resultset...有区别吗?
0 请登录后投票
   发表时间:2008-12-12   最后修改:2008-12-12
魔尊重楼 写道
抛出异常的爱 写道
1
用map时间长了
名子空间会冲突.
找bug时会哭死.
所以要有很严格的命名规则.....
2.
改动时.....也会哭死.....
由于没有代码提示....


只想到了第二条...异常大虾.你真算高人也

我用过....(很久很久以前)
从前台一杆子杵到数据库里.....非常的爽....
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics