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

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();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值