激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - hibernate屬性級別注解實例代碼

hibernate屬性級別注解實例代碼

2021-01-22 11:04黃小魚ZZZ Java教程

這篇文章主要介紹了hibernate屬性級別注解實例代碼,涉及屬性級別注釋添加方式及種類,具有一定參考價值,需要的朋友可以了解下。

屬性級別注解

添加方式:

        寫在屬性字段上面
寫在屬性的get訪問器的上面

@Id

    必須,定義了映射到數(shù)據(jù)庫表的主鍵的屬性,一個實體類可以有一個或者多個屬性被映射為主鍵,可置于主鍵屬性或者getXxx()前,注意:如果有多個屬性定義為主鍵屬性,該實體類必須實現(xiàn)serializable接口

@SequenceGenerator
@GeneratedValue
  @GeneratedValue(strategy=GenerationType,generator=""):可選,用于定義主鍵生成策略

  strategy表示主鍵生成策略,取值有:

       GenerationType.AUTO:根據(jù)底層數(shù)據(jù)庫自動選擇(默認(rèn))
GenerationType.INDENTITY:根據(jù)數(shù)據(jù)庫的Identity字段生成
GenerationType.SEQUENCE:使用Sequence來決定主鍵的取值
GenerationType.TABLE:使用指定表來決定主鍵取值,結(jié)合@TableGenerator使用

@Column

     @Column-可將屬性映射到列,使用該注解來覆蓋默認(rèn)值,@Column描述了數(shù)據(jù)庫表中該字段的詳細(xì)定義,這對于根據(jù)JPA
注解生成數(shù)據(jù)庫表結(jié)構(gòu)的工具非常有作用。

常用屬性:

name:可選,表示數(shù)據(jù)庫表中該字段的名稱,默認(rèn)情形屬性名稱一致
nullable:可選,表示該字段是否允許為null,默認(rèn)為true
unique:可選,表示該字段是否為唯一標(biāo)識,默認(rèn)為false
length:可選,表示該字段的大小,僅對String類型的字段有效,默認(rèn)值225,主鍵不能使用默認(rèn)值
insertable:可選,表示在ORM框架執(zhí)行插入操作時,該字段是否應(yīng)出現(xiàn)INSERTRT語句中,默認(rèn)為true
updateable:可選,表示在ORM框架執(zhí)行更新操作時,該字段是否應(yīng)該出現(xiàn)在UPDATE語句中,默認(rèn)為true。對于已經(jīng)創(chuàng)建
就不可以更改的字段,該屬性非常有用

@Embedded

@Embedded是注釋屬性的,表示該屬性的類是嵌入類。

注意:同時嵌入類也必須標(biāo)注@Embeddable注解

@EmbeddedId

@EmbeddedId使用嵌入式主鍵類實現(xiàn)復(fù)合主鍵

注意:嵌入式主鍵類必須實現(xiàn)Serializable接口、必須有默認(rèn)的public無參數(shù)的構(gòu)造方法、必須覆蓋equals和hashCode方法

@Lob
@Version
@Basic
@Transient

      可選,表示該屬性并非一個到數(shù)據(jù)庫表的字段的映射,ORM框架將忽略該屬性,如果一個屬性并非數(shù)據(jù)庫表的字段映射,就
務(wù)必將其標(biāo)示為@Transient,否則ORM框架默認(rèn)其注解為@Basic

實例:

hibernate.properties配置:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE hibernate-configuration PUBLIC
  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 
<hibernate-configuration>
  <session-factory>
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <!-- 
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql:///hibernate_struts_stumanager</property>
     -->
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mypage</property>
     
     
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">root</property>
    <property name="hibernate.show_sql">false</property>
    <property name="hibernate.hbm2ddl.auto">create</property>
  <!--   <property name="hibernate_current_session_context_class">thread</property> -->
    <property name="current_session_context_class">thread</property>
    <mapping class="com.entity.Students"/>
  </session-factory>
</hibernate-configuration>

實體類Student:

?
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package com.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;//JPA注解
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.GenericGenerator;
/*
 * 學(xué)生實體類
 */
//@Entity//
//@Entity(name="t_students")//如果不添加名字,則默認(rèn)與實體類名字相同,如果想要自行設(shè)置表明,就需要自己進(jìn)行添加
@Entity
@Table(name="t_students1",schema="mypage")
public class Students implements Serializable{
     @Id
//    @GeneratedValue
//    @GeneratedValue(strategy=GenerationType.AUTO)//與@GeneratedValue結(jié)果相同,字符串類型不能指定為AUTO類型
//     private int sid; //學(xué)號
//    @GeneratedValue(generator="sid")
//    @GenericGenerator(name="sid",strategy="assigned")
//    @Column(length=11)
//    private String sid;
     @EmbeddedId
     private StudentPK pk;
//    @Id
//    
//    @Column(length=11)
     private String sname;//姓名
     private String gender;//性別
     private Date birthday;//出生日期
     private String major;//專業(yè)
     private Address add;
     @Transient   //表示該字段不會被ORM映射到表里的字段
     private double salary;//薪水
     public Students(){
     }
    public Students(StudentPK pk, String sname, String gender,
        Date date, String major,Address add,double salary) {
//     super();
      this.pk = pk;
      this.sname = sname;
      this.gender = gender;
      this.birthday = date;
      this.major = major;
      this.add = add;
      this.salary = salary;
    }
    public StudentPK getPk() {
      return pk;
    }
    public void setPk(StudentPK pk) {
      this.pk = pk;
    }
    public String getSname() {
      return sname;
    }
    public void setSname(String sname) {
      this.sname = sname;
    }
    public String getGender() {
      return gender;
    }
    public void setGender(String gender) {
      this.gender = gender;
    }
    public Date getBirthday() {
      return birthday;
    }
    public void setBirthday(Date birthday) {
      this.birthday = birthday;
    }
    public String getMajor() {
      return major;
    }
    public void setMajor(String major) {
      this.major = major;
    }
    public Address getAdd() {
      return add;
    }
    public void setAdd(Address add) {
      this.add = add;
    }
    public double getSalary() {
      return salary;
    }
    public void setSalary(double salary) {
      this.salary = salary;
    }
      
}

StudentPK實體類:

?
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
package com.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Embeddable;
@Embeddable
public class StudentPK implements Serializable{
    /**
   *
   */
  private static final long serialVersionUID = 1L;
  @Column(length=18)
  private String id;//身份證號
  @Column(length=8)
    private String sid;//學(xué)號
    public StudentPK(){
    }
  public StudentPK(String id, String sid) {
    this.id = id;
    this.sid = sid;
  }
  public String getId() {
    return id;
  }
  public void setId(String id) {
    this.id = id;
  }
  public String getSid() {
    return sid;
  }
  public void setSid(String sid) {
    this.sid = sid;
  }
  @Override
  public boolean equals(Object obj) {
    // TODO Auto-generated method stub
    return super.equals(obj);
  }
  @Override
  public int hashCode() {
    // TODO Auto-generated method stub
    return super.hashCode();
  }
}

地址類:

?
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
package com.entity;
import javax.persistence.Embeddable;
import javax.persistence.Embedded;
// 地址類
@Embeddable //表示是一個嵌入類,這個類的對象在另一個實體類中充當(dāng)屬性 
public class Address {
   private String postCode;//郵編
   private String address;//地址
   private String phone;//聯(lián)系電話
   public Address(){
   }
    
  public Address(String postCode, String address, String phone) {
    this.postCode = postCode;
    this.address = address;
    this.phone = phone;
  }
 
  public String getPostCode() {
    return postCode;
  }
  public void setPostCode(String postCode) {
    this.postCode = postCode;
  }
  @Embedded
  public String getAddress() {
    return address;
  }
  public void setAddress(String address) {
    this.address = address;
  }
  public String getPhone() {
    return phone;
  }
  public void setPhone(String phone) {
    this.phone = phone;
  }
    
}

測試類:

?
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
package com.entity;
 
import java.util.Date;
import java.util.EnumSet;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test;
public class TestStudents {
  @Test
    public void testShemaExport(){
      //創(chuàng)建hibernate配置對象
      Configuration config = new Configuration().configure();
      //創(chuàng)建服務(wù)注冊對象
      ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
      //生成SessionFactory
      SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);
      SchemaExport export = new SchemaExport(config);
      export.create(true,true);
    }
  @Test
  public void addStudents(){
     //創(chuàng)建hibernate配置對象
    Configuration config = new Configuration().configure();
    //創(chuàng)建服務(wù)注冊對象
    ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
    //生成SessionFactory
    SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);
    //創(chuàng)建會話
    Session session = sessionFactory.getCurrentSession();
    //創(chuàng)建事務(wù)
    Transaction tx = session.beginTransaction();
    Address add = new Address("700005","河南理工大學(xué)","15039117115");
    StudentPK pk = new StudentPK("012345678912345678","55555555");
    Students s = new Students(pk,"張三豐","男",new Date(),"太極拳",add,7899);
    session.save(s);
    tx.commit();
//   SchemaExport export = new SchemaExport(config);
//    export.create(true,true);
  }
}

總結(jié)

以上就是本文關(guān)于hibernate屬性級別注解實例代碼的全部內(nèi)容,希望對大家有所幫助。在此也非常希望大家對本站多多支持。

原文鏈接:http://blog.csdn.net/wojiaohuangyu/article/details/51768672

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 在线成人免费网站 | 福利免费在线观看 | 天使萌一区二区三区免费观看 | 久久精品一区二区三 | 91久久国产综合久久91精品网站 | 免费网站看v片在线a | 污污网站入口 | 欧美一区高清 | 欧美成年人视频 | 国产精品视频一区二区三区四区国 | 成人毛片在线免费看 | 永久在线观看电影 | 欧美 日韩 国产 成人 | 国产美女做爰免费视 | 国产免费一区 | 鲁人人人鲁人人鲁精品 | a一级黄色毛片 | 日韩在线视频免费观看 | 亚洲天堂ww | 日本s级毛片免费观看 | 人人玩人人爽 | 污黄视频在线观看 | 俄罗斯论理片 | 欧美人与禽性xxxxx杂性 | 韩国十九禁高潮床戏在线观看 | 中文字幕一区2区 | 国产精品久久久乱弄 | 国产成人av在线播放 | 欧美级毛片 | 成年免费大片黄在线观看岛国 | 羞羞漫画无遮挡观看 | 色播久久 | 加勒比婷婷色综合久久 | 久久国产精品久久精品国产演员表 | 久久久综合视频 | 黄wwww| 国产精品麻豆一区二区三区 | 午夜精品成人一区二区 | 国产成年人在线观看 | 日韩一级网站 | 天天看夜夜爽 |