最近开始学习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工具,

为什么要用hibernate 与基于数据库表结构的项目开发的更多相关文章

  1. hibernate动态创建数据库表名几种方式

    数据库中数据量很大, 但又不可以删除时同时又要优化程序检索数据时间. 答:方式有很多比如 创建数据库表分区,创建索引, 存储过程等; 我这里采用动态创建数据库表的方式. 完全可以在不创建表分区情况下实 ...

  2. 数据库表结构文档查看器 基于netcore

    前言 日常开发业务代码,新接手一块不熟悉的业务时需要频繁的查看对应业务的数据库表设计文档.相比于直接翻看业务代码,有必要提供一个数据库表结构文档查看器来解决这些繁琐的问题. CML.SqlDoc CM ...

  3. spring security基于数据库表进行认证

    我们从研究org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl.class的源码开始 public class JdbcDaoI ...

  4. Mybatis总结之如何自动生成数据库表结构

    一般情况下,用Mybatis的时候是先设计表结构再进行实体类以及映射文件编写的,特别是用代码生成器的时候. 但有时候不想用代码生成器,也不想定义表结构,那怎么办? 这个时候就会想到Hibernate, ...

  5. 微调数据库表结构,30 分钟搞定 WordPress 数据库查询缓慢问题

    同事的美女图片站,基于 WordPress 搭建的,因为数据越来越多,变得慢,我从 PHP slow log 里面看出是 WordPress 有些查询总是很慢,即使已经安装了页面缓存插件,但是由于页面 ...

  6. python 全栈开发,Day105(路飞其他数据库表结构,立即结算需求)

    考试第三部分:Django 16.  列列举你熟悉的Http协议头以及作用.(1分) Accept-Charset: 用于告诉浏览器,客户机采用的编码 Host: 客户机通过这个头告诉服务器,想访问的 ...

  7. 不同数据库表结构的转化,PowerDesigner的使用教程

    通过学习PowerDesigner工具,学习概念模型,物理模型,面向对象模型,业务模型,以及不同数据库表结构的转化. 通过案例给大家分享,sql server 2008r2 数据库和oracle数据库 ...

  8. 用户中心mysql数据库表结构的脚本

    /* Navicat MySQL Data Transfer Source Server : rm-m5e3xn7k26i026e75o.mysql.rds.aliyuncs.com Source S ...

  9. mysql数据库表结构导出

    mysql数据库表结构导出 命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名; 导出整个数据库结构和数据 mysqldump -h localh ...

随机推荐

  1. Activity 与 Service 之间的消息传递

    BgService代码 public class BgService extends Service { public static final String TAG = "BgServic ...

  2. JVM生产环境参数实例及分析[转]

    java application项目(非web项目) 改进前: -Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweep ...

  3. PAT 1005. 继续(3n+1)猜想 (25)

    卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如对n=3进行验证的时候, ...

  4. mysql 判断 字段是否为空

    SB.Append("select "); SB.Append("mpe.EVIDENCE_ID "); SB.Append("left join m ...

  5. [NOIP2010初赛]烽火传递+单调队列详细整理

    P1313 [NOIP2010初赛]烽火传递 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述   烽火台又称烽燧,是重要的防御设施,一般建在险要处或交通要道上 ...

  6. 【转】【MySQL】mysql 通过bin-log恢复数据方法详解

    mysql中bin-log在mysql默认状态下是没有打开的,我们要先打开mysql 开启bin-log功能,然后再通过备份的bin-log进行数据库恢复了. 具体的操作是通过mysqlbinlog这 ...

  7. HBase简介

    HBase简介 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. HB ...

  8. NOI2018准备 Day10

    效率低低低低低非常低!!!!!!!!!!!!!!!!!!!!!!! noi3.3 布尔表达式 做了2个晚上做不出来... 不过今晚上A了一道很水的找规律题

  9. 多态、GC、Java数据类型

    多态 一.java中实现多态的机制是什么? 靠的是: 父类定义的引用变量可以指向子类的实例对象,或者接口定义的引用变量可以指向具体实现类的实例对象 而程序调用的方法,在运行期才动态绑定, 它就是引用变 ...

  10. WPF ListView和ListBox等双击事件问题

    上两篇文章中说双击行获取不到当前数据对象问题, http://www.cnblogs.com/ligl/p/5636899.html http://www.cnblogs.com/ligl/p/562 ...