您的位置:首页 > 其它

Hibernate学习23 -- 关联映射13 -- 动态模式映射

2009-12-04 12:48 453 查看
l 是否可以不定义JavaBean?
l 解决方法:使用动态实体模型
l 步骤:
n 在class标签中设置一个属性:entity-name=”实体名称” 并指明对应的表名
n 在每个property标签中,给定一个type属性,指定该列对应的类型名称
n 代码如下:
<?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>
<!-- 动态模型,不用编写PO -->
<class entity-name="Customer" table="T_CUSTOMER">
<id name="account" column="ACCOUNT" type="java.lang.String"> <!-- 主键 -->
<generator class="assigned"/>
</id>
<property name="password" column="PASSWORD"
type="java.lang.String"/>
<property name="cname" column="CNAME"
type="java.lang.String"/>
<property name="cbalance" column="CBALANCE"
type="java.lang.Double"/>
</class>
</hibernate-mapping>
l 怎样访问?对象存在方式:HashMap
n Object get(String entityName,Serializable id)
n Object load(String entityName,Serializable id)
n Serializable save(String entityName,Object obj)
n void saveOrUpdate(String entityName,Object obj)
n void rUpdate(String entityName,Object obj)
n 代码如下:
Session session = util.HibernateSessionFactory.getSession();
//动态模型用HashMap容纳一个记录
HashMap hm = new HashMap();

hm.put("account","98764");
hm.put("password","43534");
hm.put("cname","王晓强");
hm.put("cbalance",3456.0);

Transaction tran = session.beginTransaction();
session.save("Customer",hm);
tran.commit();
util.HibernateSessionFactory.closeSession();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: