让我详细地为您讲解一下“详解 Hibernate Mapping 配置”的完整攻略。
1. 环境准备
在开始配置 Hibernate Mapping 之前,需要先准备好以下环境:
- JDK:要求 JDK 环境为 1.8 或更高版本。
- Hibernate:需要下载并配置 Hibernate,具体可以参考 Hibernate 配置。
- 数据库:需要使用 MySQL 或者其他关系型数据库,建立相应的数据库和表结构。
2. 配置 Hibernate Mapping
2.1 基本概念
Hibernate Mapping 配置用于将 Java 中的类映射到数据库中的表。Hibernate Mapping 配置包括两部分:
- 映射元数据:用于描述 Java 类与数据库表之间的映射关系。
- 映射文件:XML 配置文件,用于存储映射元数据。
2.2 映射元数据
在 Hibernate Mapping 中,最重要的映射元数据是实体类(Entity)。在实体类中,我们需要使用注释或者 XML 元素来描述实体类与表之间的映射关系。
下面是一个示例:
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "age")
private Integer age;
// 省略 get/set 方法
}
在上述示例中,我们使用了 @Entity
注释来声明当前类是实体类,使用 @Table
注释来指定表名。@Id
注释表示当前属性是主键,@GeneratedValue
表示自动生成主键。
2.3 映射文件
Hibernate Mapping 的映射文件是一个 XML 文件,包含以下三个部分:
- 映射文件头:包含 XML 版本和 DTD 文件地址,用于验证当前文件结构是否合法。
- Class 元素:用于描述实体类与表之间的映射关系。
- Property 元素:用于描述属性与表字段之间的映射关系。
下面是一个映射文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 5.4//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-5.4.dtd">
<hibernate-mapping>
<class name="com.example.User" table="user">
<id name="id" type="java.lang.Long">
<column name="id"/>
<generator class="identity"/>
</id>
<property name="name" column="name"/>
<property name="age" column="age"/>
</class>
</hibernate-mapping>
在这个示例中,我们使用 hibernate-mapping
元素作为根元素,使用 class
元素来描述实体类与表之间的映射关系。class
元素中使用 id
元素来描述主键字段,使用 property
元素来描述其他字段。在 id
和 property
元素中,我们需要设置 name
属性为实体类对应的属性名,使用 column
属性来指定与该属性相对应的表字段名。
3. 使用示例
下面是两个使用 Hibernate Mapping 的示例。
3.1 简单查询示例
// 创建查询条件
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<User> query = builder.createQuery(User.class);
Root<User> root = query.from(User.class);
query.select(root).where(builder.equal(root.get("name"), "张三"));
// 执行查询并输出结果
List<User> users = session.createQuery(query).list();
for (User user: users) {
System.out.println(user.getName() + ": " + user.getAge());
}
在这个示例中,我们使用 Criteria API 来创建查询条件,使用 session.createQuery()
方法来执行查询,并将结果转换为 List<User>
对象。最后,遍历结果集并输出查询结果。
3.2 添加记录示例
// 创建实体对象
User user = new User();
user.setName("李四");
user.setAge(20);
// 开启事务并保存数据
Transaction tx = session.beginTransaction();
session.save(user);
tx.commit();
在这个示例中,我们创建一个实体对象并设置相应的属性,使用 session.save()
方法来保存数据,最后使用事务提交数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解 hibernate mapping配置 - Python技术站