Hibernate基础(4):基础配置@Table@Column@Temporal@Transient@Enumerated

一.基础配置

hibernate.cfg.xml中:

1.hbm2ddl.auto:create:没有就新建、update:可增加字段
2.show_sql:打印sql语句出来
3.format_sql:打印时分行显示,看着清晰点

二.@Table、 @Column、 @Temporal、 @Transient、 @Enumerated

这几个Annotation要写在相应的get方法上(写在属性头上实测不灵),其中:

@Table(name="t_Teacher")//解决类名和表名不对应

@Column(name="id")//解决属性名和字段名不对应

@Column(length=50)//限制字符串长度

@Temporal(TemporalType.DATE)//限制时间格式:只记录日期不记录时间。默认是时间日期都记录

@Transient//隐藏属性,不会被映射到表中

@Enumerated(EnumType.STRING)//把枚举里的sring存储进去

@Enumerated(EnumType.ORDINAL)//把存在的顺序编号int存储进去

  

三.JUnit测试:

插入

[java] view plain copy
 
  1. Session session = HibernateUtil.getSessionFactory().getCurrentSession();  
  2.         session.beginTransaction();  
  3.   
  4.         Teacher t = new Teacher();  
  5.         t.setTeacherid(203);  
  6.         t.setName("李四");  
  7.         t.setAge(0);  
  8.         t.setBirthday(new Date());  
  9.         t.setGrade(Grade.A);  
  10.           
  11.         session.save(t);  
  12.   
  13.         session.getTransaction().commit();  
  14.         HibernateUtil.getSessionFactory().close();  

查询:

[java] view plain copy
 
  1. Session session2 = HibernateUtil.getSessionFactory().getCurrentSession();  
  2.       session2.beginTransaction();  
  3.         
  4.       List<Teacher> result = session2.createQuery("from Teacher").list();//此行的Event指的是对应的类名,而不是数据表的名字。  
  5.       Iterator it = result.iterator();  
  6.       Teacher value = null;  
  7.       while (it.hasNext())  
  8.       {  
  9.        value = (Teacher)it.next();  
  10.        System.out.println(value.getTeacherid());  
  11.        System.out.println(value.getName());  
  12.        System.out.println(value.getAge());  
  13.        System.out.println(value.getBirthday());  
  14.        System.out.println(value.getGrade());  
  15.       }  
  16.         
  17.       session2.getTransaction().commit();  
  18.       HibernateUtil.getSessionFactory().close();  

【转自】http://blog.csdn.net/null____/article/details/8146016

[java] view plain copy
 
  1. import java.util.Date;  
  2. import javax.persistence.Column;  
  3. import javax.persistence.Entity;  
  4. import javax.persistence.EnumType;  
  5. import javax.persistence.Enumerated;  
  6. import javax.persistence.Id;  
  7. import javax.persistence.Table;  
  8. import javax.persistence.Temporal;  
  9. import javax.persistence.TemporalType;  
  10. import javax.persistence.Transient;  
  11.   
  12. @Entity  
  13. @Table(name="t_Teacher")//解决类名和表名不对应  
  14. public class Teacher {  
  15.       
  16.     private int teacherid;  
  17.     private String name;  
  18.     private int age;  
  19.     private Date birthday;  
  20.     private String secret;  
  21.     private Grade grade;  
  22.   
  23.     //setter&getter  
  24.     @Id  
  25.     @Column(name="id")//解决属性名和字段名不对应  
  26.     public int getTeacherid() {  
  27.         return teacherid;  
  28.     }  
  29.     @Column(length=50)//限制字符串长度  
  30.     public String getName() {  
  31.         return name;  
  32.     }  
  33.     @Temporal(TemporalType.DATE)//限制时间格式:只记录日期不记录时间。默认是时间日期都记录  
  34.     public Date getBirthday() {  
  35.         return birthday;  
  36.     }  
  37.     @Transient//隐藏属性,不会被映射到表中  
  38.     public String getSecret() {  
  39.         return secret;  
  40.     }  
  41.     @Enumerated(EnumType.STRING)//把枚举里的sring存储进去  
  42.     //@Enumerated(EnumType.ORDINAL),把存在的顺序编号int存储进去  
  43.     public Grade getGrade() {  
  44.         return grade;  
  45.     }  
原文地址:https://www.cnblogs.com/suncici1101/p/5576626.html