最近开始学习hibernate,其实并不知道要学习什么,有什么用.后来问了一下同事,他就说快捷方便简单,很多事情不用自己做他会帮你做好,但是我觉得不应该是这样的,
于是我就去搜了一下,就搜到了一篇帖子,里面讲的一些情况我还是赞同的.比如hibernate可以解决对象和关系的映射问题.这个问题在我的项目中也出现了,比如我
建了一个父版块表,一个子版块表,子版块和父版块的关系是多对一的关系,按照关系型数据库的,那么我会在子版块的表中加入一个父版块的Id,然后我会在java的实体类中建立一个子版块和父版块
的实体类,但是当查询子板块且需要显示他的父版块的名字时,我会在子板块的实体类中加入fatherModuleName这个字段,如果后期要要显示这个子版块的版主,那么我会在子板块中加入了userName
这个字段,这样子版块这个类中已经多了两个字段了已经'破坏了面向对象'的完整了,这就是我所遇到的对象关系映射问题.下面附了这个帖子的链接
http://zhidao.baidu.com/question/1829907591248169420?sharesource
==New Start=================================================================================================================================================
基于数据库表结构的项目开发,自从认真的学习hibernate 我就开始注意这个问题了,实际开发情况和书上讲的不一样,
书上讲了类图,流程图还有其他一些名字很专业的图,但是我们实际开发呢
第一步:分析需求
第二步:建立数据库表
第三步:开始开发
1.根据数据库表建立一个实体类
2.MVC三层开始布局
3.前端
4,优化
第四步:自测,大家一起测,一般没有专业测试(原因不是主题所以不说)
第五步:至此,我们的开发主体完成
总结来说,我们不是根据什么图来开发的而是基于数据库表来开发的,
数据库里面有什么字段,实体类中就用某一个字段,如果数据库表里面加了字段,那么实体类也要添加一个字段.
如果连个表关联时,我和同事的做法都是在一个表里添加这些重复的字段,只为拼凑这个关联之后的虚拟表的全部字段,
但是,当你注意时问题就来了,举个例子来说明
学生表,学生id,学号,姓名,性别,专业,
课程表:课程id,课程名,课程成绩,学生Id
当只显示学生或者只显示课程时实体类就表达的很完美,但是如果两个表被关联起来我们的做法就破坏了实体类的.
因为暂时没有更好的办法解决这种问题,开始学习hibernate,才知道这个是对象关系映射的问题.
如果有更好的办法,欢迎留言,PS:我的项目用的是Spring的jdbcTemplate工具,