zoukankan      html  css  js  c++  java
  • 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.     }  
  • 相关阅读:
    为图片指定区域添加链接
    数值取值范围问题
    【leetcode】柱状图中最大的矩形(第二遍)
    【leetcode 33】搜索旋转排序数组(第二遍)
    【Educational Codeforces Round 81 (Rated for Div. 2) C】Obtain The String
    【Educational Codeforces Round 81 (Rated for Div. 2) B】Infinite Prefixes
    【Educational Codeforces Round 81 (Rated for Div. 2) A】Display The Number
    【Codeforces 716B】Complete the Word
    一个简陋的留言板
    HTML,CSS,JavaScript,AJAX,JSP,Servlet,JDBC,Structs,Spring,Hibernate,Xml等概念
  • 原文地址:https://www.cnblogs.com/suncici1101/p/5576626.html
Copyright © 2011-2022 走看看