Hibernate注解

注解

同样的,Hibernate也是支持使用注解方式的。创建hibernate应用程序时有许多注解可用,如@Entity,@Id,@Table
Hibernate注释基于JPA 2规范,并支持所有功能。
所有JPA注释都在javax.persistence.*包中定义。
Hibernate EntityManager实现由JPA规范定义的接口和生命周期。
使用hibernate注释的核心优点是不再需要创建映射(*.hbm.xml)文件直接创建对象关联。

创建项目


  • 创建一个表
CREATE TABLE `employee` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `first_name` varchar(50) NOT NULL,
  `last_name` varchar(50) NOT NULL
  );
  • 创建实体类
    创建实体类并与表相映射关联。
    @Entity注解将此类标记为实体。
    @Table注解指定要保留此实体的数据的表名。
    如果不使用@Table注解,hibernate默认会将使用类名作为表名称。
    @Id注解标记此实体的标识符,一般对应的是表的主键。
    @Column注解指定此属性或字段的列的详细信息。如果未指定@Column注解,则属性名称默认将用作列名称。
@Entity
@Table(name = "employee")
public class Employee {
    @Id
    private int id;
    private String last_Name;
    private String first_Name;
    //此处省略get和set方法
}
  • 修改hibernate配置文件
    因为采用了注解的方式,所以不需要再创建实体类映射文件,只用在hibernate配置文件中映射实体类即可。




    
        
        com.mysql.cj.jdbc.Driver
        jdbc:mysql://localhost/test?serverTimezone=GMT%2B8
        root
        abcd
        
        org.hibernate.dialect.MySQL8Dialect
        
        true  
        
        
    

  • 创建测试类
public class Test {
     public static void main(String[] args) {
        // 读取配置文件,构建注册
        final StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();
        // 构建会话工厂
        SessionFactory sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();

        /*数据库操作*/
        Session session = sessionFactory.openSession();// 从会话工厂获取一个session
        Transaction t = session.beginTransaction();

        Employee e1 = new Employee();
        e1.setId(1001);
        e1.setFirst_Name("M");
        e1.setLast_Name("Su");

        Employee e2 = new Employee();
        e2.setId(1002);
        e2.setFirst_Name("Su");
        e2.setLast_Name("Ning");

        session.persist(e1);
        session.persist(e2);

        t.commit();
        session.close();
        System.out.println("successfully saved");
    }
}
  • 运行结果


    运行结果
    数据库查询结果

你可能感兴趣的:(Hibernate注解)