Hibernate基礎配置
來源:程序員人生 發布時間:2015-01-15 08:41:21 閱讀次數:3705次
3、Hibernate基礎配置
1、如果在Annotation中,類名與真是的
數據庫中的表名不同,可使用增加@Table(name="
數據庫中的表名")的方式使其對應。此時,如果
數據庫中有這個表名則會對應上,如果沒有這個表,則會生成這個表。一樣的,在XXX.hbm.xml中,也能夠配置增加響應的Tabel=tableName的配置。
2、所有無定義注解的屬性等價于在其上面添加了@Basic注解。
3、屬性名與字段名不對應的情況,使用@Column(name="數據表的字段名")的方式使其相對應。
4、不需要persistence的字段可使用@Transient的方式進行注解。這樣該字段就不會寫入數據表中。在xml中,不進行配置就能夠了。
5、屬性是時間格式的情況下,默許會將年月日時分秒全部存入。可使用@Temporal(TemporalType.DATE)的情勢使其只存入日期,固然,還可使其存入其他的日期格式。
6、Hibernate映照的類型。Hibernate會自動將java類型的數據轉換為對應的sql類型
7、枚舉類型的映照。如果指定的字段名含有枚舉類型,則在數據表中也能夠實現相應的存儲。@Enumerated(EnumType.ORDINAL)的方式使得存入的枚舉類型為int類型,@Enumerated(EnumType.STRING)的方式使得存入的值為varchar類型。
8、Annotation建議寫在get()方法上,而不是寫在屬性上。
小實驗:
修改Teacher.java
package com.zgy.hibernate.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
@Entity
@Table(name="_teacher")
public class Teacher {
private int id;
private String name;
private String title;
private String address;
private String wifeName;
private Date birth;
private ZhiCheng zhiCheng;
@Id
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name="_name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getWifeName() {
return wifeName;
}
public void setWifeName(String wifeName) {
this.wifeName = wifeName;
}
@Temporal(TemporalType.DATE)
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
@Enumerated(EnumType.STRING)
public ZhiCheng getZhiCheng() {
return zhiCheng;
}
public void setZhiCheng(ZhiCheng zhiCheng) {
this.zhiCheng = zhiCheng;
}
}
修改test下的TeacherTesting.java
package com.zgy.hibernate.model;
import static org.junit.Assert.*;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class TeacherTesting {
public static SessionFactory sf = null;
@BeforeClass
public static void beforeClass(){
sf = new AnnotationConfiguration().configure().buildSessionFactory();
}
@Test
public void test() {
Teacher t = new Teacher();
t.setId(5);
t.setName("t5");
t.setTitle("高級");
t.setAddress("北京");
t.setBirth(new Date());
t.setZhiCheng(ZhiCheng.A);
Session session = sf.openSession();
session.beginTransaction();
session.save(t);
session.getTransaction().commit();
session.close();
}
@AfterClass
public static void afterClass(){
sf.close();
}
}

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈