📅  最后修改于: 2023-12-03 15:31:07.902000             🧑  作者: Mango
Hibernate是一个流行的Java ORM框架,它简化了Java应用程序与关系型数据库之间的交互。为了实现对象关系映射,Hibernate使用映射文件来定义Java类和数据库表之间的映射关系。
映射文件是一个XML格式的文件,它描述了Java类和数据库表之间的映射。每个映射文件都对应一个Java类,它包含了以下元素:
<?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应用程序与关系型数据库之间的交互。