爪哇2博客
爪哇2博客

休眠一对一映射示例

这是教程系列的8部分中的3部分

教程内容:

在此示例中,我们将看到如何使用批注实现一对一关系。

让我们以国家和资本为例,一个国家有一个资本,以下是它们之间的关系图。

现在要在数据库中创建以上表格,您需要创建两个Java文件,即Country.java和Capital.java。

1.国家/地区

国家类别将用于在数据库中创建COUNTRY表。
创建Country.java 在 src->组织.arpit.javapostsforlearning.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
组织.Arpit.爪哇postsforlearning;
进口 爪哇x.坚持不懈.;
进口 爪哇x.坚持不懈.实体;
进口 爪哇x.坚持不懈.ID;
进口 爪哇x.坚持不懈.连接列;
进口 爪哇x.坚持不懈.一对一;
进口 爪哇x.坚持不懈.;
 
@实体
@(名称=“国家”)
上市 国家 {
    @ID
    @(名称=“国家的名字”)
     国家的名字 ;
    
    @一对一
    @连接列(名称=“资金名称”)
    首都 首都;
    
    @(名称=“国家/地区人口”)
     国家人口;
    
    上市 国家()
    {
    
    }
        
    上市 国家( 国家的名字, 国家人口) {
  这个.国家的名字 = 国家的名字;
  这个.国家人口 = 国家人口;
}
 
    上市 getCountryPopulation() {
  返回 国家人口;
}
 
    上市 虚空 setCountryPopulation( 国家人口) {
  这个.国家人口 = 国家人口;
}
 
    上市 getCountryName() {
        返回 国家的名字;
    }
          
    上市 虚空 setCountryName( 国家的名字) {
        这个.国家的名字 = 国家的名字;
    }
 
    上市 首都 getCapital() {
  返回 首都;
}
 
    上市 虚空 setCapital(首都 首都) {
  这个.首都 = 首都;
}
}
 

@OneToOne批注用于在“国家”和“资本”实体之间创建一对一关系。
@joinColumn
用于指定用于加入实体关联的映射列。

2,Capital.java

大写类将用于在数据库中创建CAPITAL表。
创造 首都.java 在 src->组织.arpit.javapostsforlearning.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
组织.Arpit.爪哇postsforlearning;进口 爪哇x.坚持不懈.;
进口 爪哇x.坚持不懈.实体;
进口 爪哇x.坚持不懈.ID;
进口 爪哇x.坚持不懈.;
 
@实体
@(名称=“首都”)
上市 首都 {
 
@ID
@(名称=“资金名称”)
首字母大写;
@(名称=“人口总数”)
首都人口;
 
上市 首都()
{
  
}
上市 首都( 首字母大写, 首都人口) {
  ();
  这个.首字母大写 = 首字母大写;
  这个.首都人口 = 首都人口;
}
 
上市 getCapitalName() {
  返回 首字母大写;
}
 
上市 虚空 setCapitalName( 首字母大写) {
  这个.首字母大写 = 首字母大写;
}
上市 getCapitalPopulation() {
  返回 首都人口;
}
 
上市 虚空 setCapitalPopulation( 首都人口) {
  这个.首都人口 = 首都人口;
}
}
 

3.Hiberante.cfg.xml:

创建一个名为“hibernate.cfg.xml” 在 src folder.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
<?XML文件 ='1.0' 编码方式='utf-8'?>
<!DOCTYPE 冬眠的-组态 上市
        “-//休眠/休眠配置DTD 3.0 // EN”
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 
<冬眠的-组态>
 
    <会议->
 
        <!- 数据库 连接 设定 ->
        <属性 名称=“ 连接.driver_class”>com.微软.sqlserver.数据库.的SQLServerDriver</属性>
        <属性 名称=“ 连接.url”>数据库:sqlserver:// localhost:1433; 数据库 = UserInfo</property>
        <属性 名称=“ 连接.username”>SA </属性>
        <属性 名称=“ 连接.password”></属性>
 
        <!- JDBC 连接 池子 (利用 已建-) ->
        <属性 名称=“ 连接.pool_size”>1</属性>
 
        <!- 的SQL 方言 ->
        <属性 名称=“方言”>组织.冬眠的.方言.的SQLServer2005方言</属性>
 
        <!- 启用 冬眠's 自动 会议 语境 管理 ->
        <属性 名称=“ current_session_context_class”>线</属性>
 
        <!- 禁用 第二-水平 快取  ->
        <属性 名称=“ 快取.provider_class”>组织.冬眠的.快取.NoCacheProvider</属性>
 
        <!- 回声 所有 被执行 的SQL 标准输出 ->
        <属性 名称=“ show_sql”>真正</属性>
 
        <!- 下降 回覆-创造 数据库 图式 启动 ->
        <属性 名称=“ hbm2ddl.auto”>创造</属性>
 
  <映射 =“ 组织.arpit.javapostsforlearning.Country”></映射>
  <映射 =“ 组织.arpit.javapostsforlearning.Capital”></映射>
 
    </会议->
 
</冬眠的-组态>
 

4.主类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
组织.Arpit.爪哇postsforlearning;
 
进口 组织.冬眠的.届会;
进口 组织.冬眠的.会话工厂;
进口 组织.冬眠的.CFG.组态;
进口 组织.冬眠的.服务.服务注册;
进口 组织.冬眠的.服务.服务注册Builder;
 
 
上市 休眠主 {
 
上市 静态的 虚空 主要([] args) {
 
组态 组态= 组态();
组态.配置();
服务注册 sr= 服务注册Builder().applySettings(组态.getProperties()).buildServiceRegistry();
会话工厂 科幻=组态.buildSessionFactory(sr);
届会 ss=科幻.openSession();
 
国家 countryIndi​​a= 国家(“印度”,50000000);
首都 首都德里= 首都(“德里”,4000000);
countryIndi​​a.setCapital(首都德里);
国家 国家法国= 国家(“法国”,20000000);
首都 首都巴黎= 首都(“巴黎”,1000000);
国家法国.setCapital(首都巴黎);
ss.beginTransaction();
ss.保存(countryIndi​​a);
ss.保存(首都德里);
ss.保存(国家法国);
ss.保存(首都巴黎);
ss.getTransaction().承诺();
ss.();
 
}
 
}
 

项目结构:

5.SQL输出:

数据库中的COUNTRY表

数据库中的CAPITAL表

源代码:

1
2
3
4
 
<b>资源:</b><a href="//dl.dropbox.com/s/kjzklx8xldmdk4t/OneToOneMappingExample.zip" 目标=“_空白”>下载 没有 罐子 档案</a>
<b>资源 + LIB</b>: <a href="//dl.dropbox.com/s/7khkn0wixvkzr84/OneToOneMappingExampleWithJars.zip" 目标=“_空白”>下载 档案</a>
 

分享这个

作者

关注作者

相关文章

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。


成为朋友

©2020 爪哇2博客