论坛首页 Java企业应用论坛

讨论在Tag Library中使用Hibernate的方法

浏览 6068 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2003-09-22  
我们现在在做一个web管理项目,由于我以前用JSP比较少,而且在管理功能上很多功能都是对某些数据库表进行增删查改等操作,相应处理的JSP页面都比较类似,于是我使用了Tag Library对一些共同的操作进行了封装,做完以后觉得效果还比较好(其码我不需要写太多的类似的JSP页面了, ).

原来我在写Tag时临时先使用的了通过Session传一个DataSource到Tag类中去的方法,以便在Tag库中进行数据库查询的操作,即利用这个DataSource组织SQL语句然后通过JDBC完成查询等操作.在Tag中我会将需要查询的表名以及相应的字段名传入进去,所以也比较方便.

但是自从我看到Hibernate后,我已经用了很长时间来学习,也通过本论坛学到不少东西(在此也谢谢robbin,yehs220, Jplateau等大侠的辛苦努力!).下一步我想对原来写的Tag库进行升级,修改为对数据库操作使用Hibernate来完成,但与原来不同,在Hibernate中使用的全部是对象,我有一点不是很清楚,也希望大家能帮忙想想办法,就是如果我还想做到类似于原来将表名传入Tag库的方法,若使用Hibernate该怎么办?
   发表时间:2003-09-22  
也许你应该传过去的不是表名了,而是持久对象
0 请登录后投票
   发表时间:2003-09-22  
robbin 写道
也许你应该传过去的不是表名了,而是持久对象
那我怎么样从持久对象中读取数据呢?因为不同的持久对象读取数据的方法(getter方法)是不同的,该怎么调用呢?是不是要我自已对所有的持久对象规定一个我自己使用的接口才可以?

谢谢!
0 请登录后投票
   发表时间:2003-09-22  
嗯.....你原来的方式使用Bean对是对JDBC API的简单封装,现在改用Hibernate,那么程序架构就不一样了。就是要根据不同的持久对象实施getter/setter
0 请登录后投票
   发表时间:2003-09-22  
我想架构和原来的肯定不同了,能给点建议吗?
0 请登录后投票
   发表时间:2003-09-22  
我会试一下 写道
我想架构和原来的肯定不同了,能给点建议吗?


我觉得封装方式肯定不一样,假设原来的封装方式是对API的再封装,那么新的系统在设计的时候要从业务角度来封装对象了,可以参考一下我在“技术话题”版的“面向对象的思维方法”
0 请登录后投票
   发表时间:2003-09-22  
我先看一看再更深入地问你!谢谢!
0 请登录后投票
   发表时间:2003-09-22  
看看这个例子:

http://sourceforge.net/projects/jpolls

一个用 hibernate + struts 实现的投票的 web 应用,很不错

他里面也用到了 taglib

我稍微看了下,他用 DAO 封装对数据库的操作
然后,在 tag 的 doStartTag() 方法里通过调用 DAO 的方法来获取感兴趣的数据,再把他们输出到 jsp

你可以去研究研究。
0 请登录后投票
   发表时间:2003-09-23  
我在项目中已经使用了。我的有2种方法:
1、我自己定义一个业务对象,其实质是一个动态bean,这个动态bean也许是由一个Hibernate bean 构成,也许是多个,如果它们有同名的属性时,就将其视为是相同的属性,在标签类中使用get(属性名)的方式得到。我往标签中传的是这个业务对象的类名;
2、我在标签类中得到List对象,然后传入脚标得到属性。

你可以参考一下。
0 请登录后投票
   发表时间:2003-09-23  
cinc 写道
看看这个例子:

http://sourceforge.net/projects/jpolls

一个用 hibernate + struts 实现的投票的 web 应用,很不错

他里面也用到了 taglib

我稍微看了下,他用 DAO 封装对数据库的操作
然后,在 tag 的 doStartTag() 方法里通过调用 DAO 的方法来获取感兴趣的数据,再把他们输出到 jsp

你可以去研究研究。


我简单地看了看你说的polls,不过我觉得和我现在遇到的情况差别比较大,它对业务对象进行封装,但是由于只是一个DEMO,所以在它的系统中只有两个表,而在我们现在的系统中有几十个表,如果都象那样封装,还不如不封装!

现在头有点大,想不出东西,看来要休息一下了!    
0 请登录后投票
论坛首页 Java企业应用版

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