【hibernate】基础映射

  【引言】    

        Hibernate的一个重要的功能就是映射,它能够在对象模型和关系模型之间转换,是面向对象编程思想提倡使用的,这样开发人员就只需要关系对象模型中代码的编写。对象和关系数据库之间的映射通常是由XML文件来定义。

使用Hibernate编程时首先要连接数据库,所以首先要去查看xml中有关数据库连接的配置,根据文档的配置创建sessionFactory,再由sessionFactory创建一个session,最后由session统一将更改提交到数据库,这就是一整个操作。

【基本映射】

主要需要的映射对象有:要映射的实体、表示映射关系的映射文件、数据库连接信息的配置文件。

1、要映射的实体(*.java)

public class User implements java.io.Serializable{
	private Long id;
	private String loginName; // 登录名
	private String password; // 密码
	private String name; // 真实姓名
	private String gender; // 性别
	private String phoneNumber; // 电话号码
	private String email; // 电子邮件
	private String description; // 说明
以及每个属性的get/set方法。

2、映射文件

<?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 package="cn.itcast.oa.domain">

	<class name="User" table="t_user">
		<id name="id">
           	 <generator class="native"/>
		</id>
		<property name="loginName" column="log_name"/>
		<property name="password" />
		<property name="name" />
		<property name="gender" />
		<property name="phoneNumber" />
		<property name="email" />
		<property name="description" />
	</class>
	
</hibernate-mapping>	
以上信息中,class标签中的name属性表示对应的实体类,table属性表示在数据库中对应的表名。

<id>标签必须配置在<class>标签的第一个位置。定义了该属性到数据库表主键字段的映射。<generator>标签表示主键的生成策略。

1、uuid:生成一个不会重复的id。

2、native: 根据底层数据库的能力选择identity,sequence或者hilo中的一个(数据库自增)。

3、assigned: 让程序在save()之前为对象分配一个表示符。这是<generator>元素没有指定时的默认生成策略。(如果是手动分配,则需要设置此配置)。

<property>标签用于映射普通属性到表字段。

1、name属性:属性的名字

2、column属性:对应到数据库字段名

……(其他的属性没写,大家自己查吧!)

3、数据库连接配置文件

<!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>
	<!-- 1、数据库连接信息 -->
	<!--  <property name="dialect">org.hibernate.dialect.Mysql5InnoDBDialect</property>  -->
	<property name="dialect">
		org.hibernate.dialect.MySQLDialect
	</property>
	<!-- 加载了jdbc.properties,所以不使用这个了
                <property name="connection.driver_class">com.jdbc.mysql.Driver</property>
		<property name="connection.url">jdbc:mysql://local:3306/itcastoa</property>
		<property name="connection.username">root</property>
		<property name="connection.password">123456</property>  -->

	<!-- 2、其他配置 -->
	<property name="show_sql">true</property>
	<property name="hbm2ddl.auto">update</property>

	<!-- 3、导入映射文件 -->
	<mapping resource="cn/itcast/oa/domain/User.hbm.xml" />
	

</session-factory>
</hibernate-configuration>



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值