美文网首页
Hibernate注解

Hibernate注解

作者: 小格zZZ | 来源:发表于2018-12-03 15:34 被阅读0次

    注解

    同样的,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配置文件中映射实体类即可。
    <?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");
        }
    }
    
    • 运行结果


      运行结果 数据库查询结果

    相关文章

      网友评论

          本文标题:Hibernate注解

          本文链接:https://www.haomeiwen.com/subject/kupycqtx.html