Hibernate注解

2018-12-03  本文已影响0人  小格zZZ

注解

同样的,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(name = "employee")
public class Employee {
    @Id
    private int id;
    private String last_Name;
    private String first_Name;
    //此处省略get和set方法
}
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <!--数据库连接参数-->
        <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/test?serverTimezone=GMT%2B8</property>
        <property name="connection.username">root</property>
        <property name="connection.password">abcd</property>
        <!--声明数据库方言-->
        <property name="dialect">org.hibernate.dialect.MySQL8Dialect</property>
        <!--是否显示HQL-->
        <property name="show_sql">true</property>  
        <!--映射实体类-->
        <mapping class="mypackage.Employee"/>
    </session-factory>
</hibernate-configuration>
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");
    }
}
上一篇 下一篇

猜你喜欢

热点阅读