📜  Hibernate-映射文件(1)

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

Hibernate-映射文件

Hibernate是一个流行的Java ORM框架,它简化了Java应用程序与关系型数据库之间的交互。为了实现对象关系映射,Hibernate使用映射文件来定义Java类和数据库表之间的映射关系。

定义映射文件

映射文件是一个XML格式的文件,它描述了Java类和数据库表之间的映射。每个映射文件都对应一个Java类,它包含了以下元素:

  • class:指定Java类的全限定名;
  • table:指定映射到数据库中的表的名称;
  • id:指定主键的属性;
  • property:指定其他属性;
  • many-to-one:指定多对一的关联关系;
  • one-to-many:指定一对多的关联关系;
  • many-to-many:指定多对多的关联关系。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="com.example.User" table="user">
        <id name="userId" type="int" column="user_id">
            <generator class="native"/>
        </id>
        <property name="username" type="string" column="username" not-null="true"/>
        <property name="password" type="string" column="password" not-null="true"/>
        <many-to-one name="role" class="com.example.Role" column="role_id" not-null="true"/>
    </class>
</hibernate-mapping>
映射文件配置

通过全局配置文件hibernate.cfg.xml来配置映射文件的位置和数据库连接信息。在配置文件中添加以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.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/mydb</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">password</property>
        <mapping resource="com/example/User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
使用映射文件

在Java中使用Hibernate框架,需要使用SessionFactory来创建Session。SessionFactory是一个线程安全的对象,它通过Configuration对象来读取映射文件,并根据配置文件中的信息来建立数据库连接。

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

接着,使用Session来完成与数据库的交互,例如查询数据:

Session session = sessionFactory.openSession();
List<User> userList = session.createQuery("from User").list();
session.close();

或者添加新的记录:

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();

User user = new User();
user.setUsername("user1");
user.setPassword("password1");
user.setRole(new Role(1, "user"));
session.save(user);

tx.commit();
session.close();

Hibernate-映射文件是Hibernate中非常重要的一个概念,它描述了Java类和数据库表之间的映射关系。通过映射文件,Hibernate可以自动地将Java对象转换为数据库记录,并将数据库记录转换为Java对象。掌握Hibernate-映射文件的使用,可以让我们更加方便地进行Java应用程序与关系型数据库之间的交互。