欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hibernate(二)——基本映射

程序员文章站 2024-03-02 16:26:34
...

Hibernate不仅负责从Java类到数据库表的映射,还提供了面向对象数据查询检索机制,从而极大地缩短了手动处理SQL和JDBC上的开发时间。


也就是说,采用Hibernate框架进行开发,我们无需关心数据库中有哪些表。取而代之的是,通过配置文件的基本映射,我们能够完全采用面向对象的方式,完成持久层的持久化数据处理。


首先,从宏观上了解Hibernate的基本映射。


Hibernate(二)——基本映射


下面做一个Hibernate做一个映射Demo:

User实体:

package com.lzq.hibernate;
import java.util.Date;
public class User {
	private String id;
	private String name;
	private String password;
	private Date createTime;
	private Date expireTime;
	……
	getter/setter方法
	……
}


User.hbm.xml 映射文件:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="com.lzq.hibernate.User" table="t_user">
                <!-- 一种主键生成策略:uuid-->
               <id name="id">
			<generator class="uuid" />
		</id>
                <!-- 映射name属性-->
               <property name="name" />
		<property name="password" />
		<property name="createTime" />
		<property name="expireTime" />
	</class>
</hibernate-mapping>


在hibernate.cfg.xml文件里,建立Hibernate与User的联系。

<!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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_test</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

		<!-- hibernate与实体User建立联系 -->
		<mapping resource="com/lzq/hibernate/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>


这样,就映射了User实体,以后,我们就可以通过面向对象的方式操作User实体,进而间接对数据库进行操作。