日期:2014-05-17  浏览次数:20634 次

hibernate 学起来真费劲啊
什么叫 一对一 单向,双向

什么叫 多对一 单向,双向
什么叫 一对多 单向,双向

视频上说 多对一和一对多 双向是一样的

什么叫 多对多 单向,双向

而且那些注释又比较类似,记不住。
倒底怎么个回事啊,我在学数据库的时候没有单向、双向这一说法啊。
学的我头都大了。
我学的是 hibernate 3.3.2



------解决方案--------------------
我进公司就没用过hibernate,这东西不适合做大项目
------解决方案--------------------
就是javabean 与 javabean之间的关系
例如 A 和 B
A里有个集合 ArrayList<B> list;
这就是一对多 ,反过来就是多对一
------解决方案--------------------
理论的东西你大概了解就行了
真正做项目的时候不会让你花那么多时间理解
基本上我们做个项目不管作这个语言你会不会
你了不了解回家自己看去
你就不会纠结这样的理论问题了
先看sample
然后自己模仿写
然后开始做
做过10来个之后如果你感兴趣回头再学理论把
------解决方案--------------------
3大框架 最简单的就是 hibernate 

jdbc好不好用和你 sql用的好不好有关系
有一个自己封装connection和连接池的 工具jar

会使用sql的话 开发速度飞快 各种关联查询
如果在深一步 通过bean 反射 sql语句封装一下 在封装分页等等 速度就更快了
可是这样 就越来越想 hibernate (自己不做齿轮)

hibernate的学习 一上来比较麻烦的不是 1对多 多对1
因为常规的学习是 反向工程 就是有表 反向类

这样其实是要求 懂数据库的


真正hibernate是正向工程

你如果数据库不熟 
设计模式出发由域建模出发 生成类 最终正向 这种也不熟

学起来能容易 就奇怪

如果有个好老师带 也没有这些问题了
------解决方案--------------------
虽然Hibernate可以快速开发而且数据库兼容。但我还是喜欢JDBC多一点,
------解决方案--------------------
所谓的一对一,一对多,多对一以及多对多
是指实体类之间的关系
单双向是指实体类之间持有对方的应用
如果只有一方持有另一方的应用则称为单向
而如果双方都持有有彼此的应用则称为双向
比如有类A 及类B
只有类A中拥有B类的一个应用或者只有类B中持有A类的一个应用则称为单向
当A类中持有B类的应用同时B类中又持有A类的应用,此时则称为双向
单向:
class A{ class B { | class A{ Class B{
B b; //或者 Set<B> b int n ; | int c; A a//Set<A>
getset..... 没有A的应用..... | 没有B的应用... getset....
} } | } }
双向:
class A{ class B { | class A{ Class B{
B b; //或者 Set<B> b B b; //Set<B> b | B b;Set<B> A a//Set<A>
getset..... getset. | getset.... getset....
} } | } }
纯属个人理解,不知表达的清不清楚。。。
------解决方案--------------------
单向:
class A{
B b;//或Set<B>b;
}
class B{
没有A的应用
}
class A{
没有A的应用
}
class B{
A a //Set<A> a;
}

双向;
class A{
B a; // Set<B> b;
}
class B{
A A; // Set<A> a;
}

------解决方案--------------------
事实上真正做项目了,很少会用到这些
------解决方案--------------------
探讨
引用:

刚接触hibernate还比较喜欢,可是接触的多了还是觉得jdbc好用些

= =。。jdbc比hibernate好用?这有点假了吧。。用JDBC 不把人麻烦死了。。你不理解这些。。应该是你的基础不是很扎实的缘故

------解决方案--------------------
直接去做吧,我是直接设置的数据库然后反编译到hibernate配置文件,那些什么关系问题就不用管了,都自动完成
------解决方案--------------------