《Java从入门到放弃》入门篇:hibernate中的多表对应关系
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了《Java从入门到放弃》入门篇:hibernate中的多表对应关系,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1579字,纯文字阅读大概需要3分钟。
内容图文
![《Java从入门到放弃》入门篇:hibernate中的多表对应关系](/upload/InfoBanner/zyjiaocheng/1209/0213a3ca5baf4b9792cbd9dcdb374210.jpg)
hibernate中的对应关系其实就是数据库中表的对应关系,
就跟某些电影中的某些场景是一样一样滴。
比如可以是一男一女,还可以是一男多女,
更可以是多男一女,最后最后最后还可以是多男多女!!!
有些不纯洁的看官肯定已经开始想歪了吧···,我还是上图吧!请看下图
我说滴是这样滴一群人打群架滴场景,嘿嘿嘿···
数据库中表与表之间的数据映射关系有一对一,一对多,多对一,多对多。例如:
一个身份证只能对应一个护照,一个护照也只能对应一个身份证,这就是一对一的关系
一个男人可以有多个孩子,这多个孩子只能对应一个爹,从男人的角度这就是一对多的关系,而从孩子的角度,那就是多对一的关系
一个用户可以买多件不同的商品,而某个商品也可以被多个用户购买,这就是多对多的关系,一般多对多的关系,我们会再创建一个关系表来保存这种关联,所以最后这三张表的关系就会变成两个一对多的关系。
如果有不清楚的小伙伴,建议先学习一下数据库再来继续。
在实际开发中,用得最多的就是一对多和多对一,今天我们就来说说在hibernate中如何还配置这两种关系。
一、一对多映射关系
我这儿举的例子是个简化版的博客数据库,里面有三张表,分别是:作者表、博客表、评论表。
因为是入门篇哈,所以表的结构进行了简化,对应关系就是:一个作者可以有多个博客,一个博客可以有多个评论。
现在我们要实现这个一个需求:查询作者,并且同时查询出他的所有博客。
1.1) 首先,使用DBBrowser来生成作者表和博客表对应的实体类和映射文件。
注意勾选下面的a<-b,因为我是在author表上点的右键来生成,勾上这个选项就表示所有引用了author表的外键表都会关联生成。
生成的author实体类就会多出一个SET集合。
我们手工把它改成泛型集合。
author的映射文件中也会多出一个SET标签。
1.2)这儿我们先不做修改,然后在Test类中编写测试代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class Test {
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
Author author = (Author)session.get(Author.
class
,
1
);
System.out.println(
"看SQL语句是在我之前还是之后!"
);
System.out.println(
"作者:"
+author.getUsername());
//遍历该作者的所有博客
for (Blog blog : author.getBlogs()) {
System.out.println(
"博客:"
+blog.getTitle());
}
HibernateSessionFactory.closeSession();
}
}
|
可以看到运行后的结果如下所示:
从上面可以看到,虽然我们只是get了一个author对象,但在使用它内部的blog对象时,hibernate会自动去查询该作者的所有博客,是不是非常方便,比我们自己写JDBC的代码要简单很多了吧!!!
马上要回家了,今天先讲到这儿吧·,看官们自己还有时间的话,可以再试试多对一的映射,如果都没问题的话,后面还有几个属性要简单介绍一下的:lazy、cascade、not-null、inverse。
原文:http://www.cnblogs.com/yixueyuan/p/7390929.html
内容总结
以上是互联网集市为您收集整理的《Java从入门到放弃》入门篇:hibernate中的多表对应关系全部内容,希望文章能够帮你解决《Java从入门到放弃》入门篇:hibernate中的多表对应关系所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。