• 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.     }  
  • 相关阅读:
    题解-Quantifier Question
    题解-[WC2011]最大XOR和路径
    笔记-Recursive Queries
    树套树
    SG函数
    题解-Magic Ship
    分块
    文章根据时间段显示的微信名和微信号
    jquery 在页面上根据ID定位(jQuery锚点跳转及相关操作) 经典
    nginx配置反向代理
  • 原文地址:https://www.cnblogs.com/suncici1101/p/5576626.html
Copyright © 2020-2023  润新知