Hibernate之@Entity,@Table,@Id

1、@Entity

        当你需要映射一个类到数据库中的时候,你就需要在这个类上增加 @Entity 这个注解。

        主要属性:

        name:你可以为这个类指定一个名称,在 HQL(HQL 会在以后介绍)  的时候可以使用。

2、@Table

        这个注解是可选的。主要是将类映射到数据库中的表时,对表的基础信息进行设置。

        主要属性:

        name:表名。类映射到数据库表的表名称。

        schema:数据库名。这个属性是可选的。类映射的数据库表所在的数据库名称。

3、@Id

       这个注解是标识类的属性是表的主键。@Id 这个属性下一章将详细讲解。

class Student

package demo.model;

import javax.persistence.*;
import java.util.Date;

@Entity
@Table(name = "studentinfo", schema = "hibernatedemo")
public class Student {

    private Integer id;

    private String name;

    private Integer sex;

    private String studentno;

    private Date brithday;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Column(length = 30, nullable = false)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Column(length = 10, unique = true, nullable = false)
    public String getStudentno() {
        return studentno;
    }

    public void setStudentno(String studentno) {
        this.studentno = studentno;
    }

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    @Temporal(TemporalType.DATE)
    public Date getBrithday() {
        return brithday;
    }

    public void setBrithday(Date brithday) {
        this.brithday = brithday;
    }
}

class StudentTest

package demo.test;

import demo.model.Student;
import demo.util.HibernateUtil;
import org.hibernate.Session;
import org.junit.Test;

import java.util.Date;

public class StudentTest {

    @Test
    public void testSave() {
        Student student = new Student();
        student.setName("张三");
        student.setSex(1);
        student.setStudentno("0001");
        student.setBrithday(new Date());
        Session session = HibernateUtil.createSessionFactory().openSession();
        session.beginTransaction();
        try {
            session.save(student);
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            System.out.print(e);
        } finally {
            if(session!=null) {
                session.close();
            }
        }
    }
}

class HibernateUtil

package demo.util;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

    private static SessionFactory sessionFactory = null;

    private HibernateUtil() {}

    public static SessionFactory createSessionFactory() {
        if(sessionFactory==null) {
            sessionFactory = new Configuration().configure().buildSessionFactory();
        }
        return sessionFactory;
    }
}

最后需要在 Hibernate.cfg.xml 中,增加此类:

<mapping class="demo.model.Student" />

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值