hibernate config

class代表这个类的名字 com.shsafe.bean.Person  table表示这个类映射到哪张表上

将类与表映射上 将类的属性和成员变量 和 表的字段映射上


id 子元素 有name属性(类里面的成员变量) 和 column 属性 (映射到表的字段名字) type表示此成员变量的类型 (int string )注意string中的S不能大写


id子元素中的generate元素 表示主键ID的生成方式 class="increment"


映射属性都用property来表示  name永远表示的是当前类里面的属性名字 type有2种 一种是JAVA类型  一种是Hibernate类型(string) 或者java.lang.String

<s:iterator 可以吧list里面所有信息显示出来相当于for 循环 value属性表示要从哪里面遍历哪些东西

select max(id) from user 意思是  由于我们设置了主键为increment所以 数据库先查找出最大的ID 然后+1 作为此条记录的ID serializable接口是很多类的接口 是个空接口 实现该接口 说明可以序列化

无论查找 更新 删除 都是通过ID来实现的

column属性也可以在子元素中配置  这样可以增加更多的信息 如length=15规定了最长为15

customer 和 order是1对多的关系 在HBM里面如何体现?

customer里面有个set属性的orders

<set name="orders" 表示属性名  需要在这个SET里把所有信息告诉hibernate告诉他 多的一方是谁 多的一方的外键是什么 才会生成相应的SQL语句 想保存CUSTOMER ORDER就自动保存了  就要配置级联属性 cascade

inverse表示相反的 表示对这种关联关系谁是主控方 谁是被控方 主控方就是由哪一方维持关联关系


inverse设置为true 就是由对方来维持这种关系 一般一对多都是设置为true 默认为false
<key>column属性指定好外键 设定与所关联的持久化类对应的表的外键 customer_id 在ORDERS表指定标签 <ont-to-many> 一对多 多的那一方每个元素都是什么类型 class=com.test.Order

cascade : save-update 我想保存Customer Hibernate会自动的保存与Customer关联的ORDER
           none表示 与CUSTOMER所关联的表的操作都与ORDER无关

alter table ORDERS add index IDX_CUSTOMER_ID(CUSTOMER_ID),add constraint FK CUSTOMER_ID foreign key(CUSTOMER_ID) references CUSTOMERS(ID);


<many-to-one name="customer"  >column因为customer本身是一个对象类型的属性 不是一个简单的属性 所以就配置成多对一的多的一方的外键 配置单的一方的类型 class=com.test.Customer

none是默认值 delete是删除关联 all是所有关联  


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值