您的位置:首页 > 其它

Hibernate- 组件映射

2018-03-23 15:29 330 查看
一 hbm.xml

java中组合对象,使用<component>元素添加映射方式,属性同样一一对应列表项。
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<!-- 1.设置包名  -->
<hibernate-mapping  package="user">
<!-- 2.设置要映射的类名name,与表名table -->
<class name="cn.zm.dao.UserAccount" table="userAccount">
<!--    3.设置主键name,类型type ,对应表中字段column (不写则默认相同) -->
<id name="uuid" type="java.lang.String">
<!--        4.主键生成策略     class -->
<generator class="assigned"></generator>
</id>
<!--        5.普通属性的映射 name属性名,type类型,column对应表中的字段名 -->
<component name="p" class="cn.zm.dao.PersonModel">
<property name="userId"></property>
<property name="name"></property>
</component>
<property name="age"></property>
</class>

<!--
<class name="cn.zm.UserAccount1" table=
4000
"userAccount1">

<property name="age"></property>

</class>     -->

</hibernate-mapping>


二 实例存储

“`

package cn.zm.dao;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

public class Test {

public static void main(String[] args) {

/*
1. 读取hibernate.cfg.xml,创建session工厂,是线程安全的。
默认读取文件为hibernate.cfg.xml, 如果要显示指定文件名,则如下:
SessionOnFactory sf = new Configuration().configure("javass.cfg.xml").buildSessionFactory();
*/
@SuppressWarnings("deprecation")
SessionFactory sf = new Configuration().configure().buildSessionFactory();

/*
2. Session是应用程序主要使用的Hibernate接口,相当于JDBC中的Connection+Statement/PreparedStatement,
是线程不安全的。
*/
Session s = null;

/**
* 3. Transaction是 Hibernate的Transaction。
* */
Transaction t = null;

//1. 准备数据
UserAccount um = new UserAccount();
um.setUuid("13");
um.setAge("1");
PersonModel pm = new PersonModel();
pm.setUserId("id1");
pm.setName("name1");
um.setP( pm );

try {

//2. 开启session
s = sf.openSession();
//3  session开启事务
t = s.beginTransaction();
//4. 调用save方法,传入userAccout实例
s.save( um );
//5. 提交事务
t.commit();

}catch( Exception e ) {

t.rollback();
}
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: