📜  创建 EntityManager Hibernate - Java (1)

📅  最后修改于: 2023-12-03 15:22:40.009000             🧑  作者: Mango

创建 EntityManager Hibernate - Java

在使用 Hibernate 进行数据库应用程序的开发时,我们需要使用 EntityManager 来处理实体。EntityManager 是一个非常重要的组件,用于管理实体的生命周期、处理持久化操作并提供查询功能。

本篇文章将向你介绍如何创建 EntityManager,以及如何配置 Hibernate 运行环境来支持 EntityManager。

开始使用 EntityManager

在 Java 应用程序中,我们可以使用 javax.persistence.EntityManager 接口来创建 EntityManager。在 Hibernate 中,我们可以使用 Hibernate 提供的 EntityManager 实现来创建 EntityManager,如下所示:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnitName");
EntityManager em = emf.createEntityManager();

其中,Persistence.createEntityManagerFactory() 方法用于创建一个 EntityManagerFactory 对象,而 emf.createEntityManager() 方法则用于创建一个 EntityManager 对象。

接下来,我们需要配置 Hibernate 运行环境来支持 EntityManager。

配置 Hibernate 环境

在使用 Hibernate 进行开发时,我们需要对 Hibernate 运行环境进行配置。Hibernate 通常使用 hibernate.cfg.xml 文件来配置运行环境。在该文件中,我们需要指定以下内容:

  1. 数据库驱动程序的类名。
  2. 数据库的连接字符串、用户名和密码。
  3. Hibernate 实体类的位置。
  4. Hibernate 如何管理实体。
  5. Hibernate 的缓存配置。
  6. Hibernate 的日志配置等。

具体配置示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 5.4//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-5.4.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- 数据库连接配置 -->
        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost/test?serverTimezone=UTC</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>

        <!-- Hiberante 实体类配置 -->
        <mapping class="com.example.entity.User"/>

        <!-- Hibernate 管理实体的方式 -->
        <property name="hibernate.hbm2ddl.auto">create</property>

        <!-- Hibernate 缓存配置 -->
        <property name="hibernate.cache.use_second_level_cache">false</property>
        <property name="hibernate.cache.use_query_cache">false</property>

        <!-- Hibernate 日志配置 -->
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <property name="hibernate.use_sql_comments">true</property>
        <property name="hibernate.generate_statistics">true</property>
    </session-factory>
</hibernate-configuration>

在上面的示例中,我们指定了 MySQL 数据库的连接字符串、用户名和密码,并在 mapping 元素中指定了 Hibernate 实体类的位置。同时,我们使用 hibernate.hbm2ddl.auto 属性来告诉 Hibernate 如何管理实体,使用 hibernate.cache.use_second_level_cachehibernate.cache.use_query_cache 属性来配置 Hibernate 的缓存,以及使用其他属性来配置 Hibernate 的日志等。

总结

本篇文章向你介绍了如何创建 EntityManager 和如何配置 Hibernate 环境来支持 EntityManager。使用 EntityManager 可以有效地管理实体,提供更加便捷的数据库操作。配置 Hibernate 环境也是非常重要的,合理的配置可以使 Hibernate 在运行时更加稳定和高效。