Hibernate入门(二)

Hibernate


定义  作用 


配置数据源 (不是必须的)
创建项目 添加Hibernate 能力


主配置文件   工具类  (获取操作数据库对象的session)  添加hibernate 相关的jar文件


根据数据库中表生成持久化类以及对应的映射文件  由表到类


由类到表 手写持久化类  映射文件  


自动 
hbm2ddl.auto  update 更新表结构 之前数据不会删除(最常用的属性,第一次加载 hibernate时根据model类会自动建立起表的结构(前提是先建立好数库),以后加载 hibernate时根据 model类自动更新表结构,即使表结 构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。))
create 每次重新建新的表
create -drop加载时创建新的表  当sessionFactory关闭删除这张表
validate  验证


 手动


第一步 加载配置文件  create(true,true)




cascade  级联 查询  修改  删除   保存


save-update 保存对象时 同时保存相关联的对象
delete 级联删除 删除一个对象时  同时删除相关联的对象
all
delete-orphan 删除所有和本对象解除关系的对象  
all-delete-orphan
inverse  放弃维护关系  true   不维护   false 维护关系

多对一  关系    学生相对于老师  员工相对于部门


多的一端   必须维护关系 少的一端  可以维护  通常都是不维护



部门  员工表




id生成策略
assigned  按照指定的字段  作为当前表的主键


uuid  产生的地球上唯一的id值  String类型  合并表


native 常用  Oracle 支持序列  MySQL 自增(依赖数据库的自增)  适应性高,不通过sql语句添加id   而是数据库自动添加

increment 自动增长的id  依赖程序维护的自增(在添加数据之前先执行查询语句,查询当前表中的最大id(select max(id) from 表名) 然后加一作为下一条数据的id值)


identity 依赖数据库的自增  不支持Oracle


hilo  使用高低位算法生成id


lazy 懒加载 查询某一个对象时。是否去同时查询相关联的实体对象取决于lazy true/false
Hibernate  使用懒加载可以降低系统内存的消耗 提高执行效率


只想知道某一个部门的名


fetch 抓取策略   


select  查询对象的信息  会发送一条sql 查询语句
如果查询当前对象的关联对象或者实体  会再发送一条sql 查询语句查询




 join  left out join  左外连接


查询某一对象时  ,使用外连接同时查询与这个对象相关联的其他对象,此时懒加载失效 


lazy 


fetch   select join   


lazy 和 fetch  一起使用


lazy=true  fetch=select  使用延迟加载  先查询要查询的对象,相关对象
不会查询


查询id为一的部门名称




关联关系  (双向关联)如何维护具有关联关系表的内容
从具有关联关系的某一个表都可以维护另外表的内容
 多对一 一对多 


学生-老师 多对一  




第一种 多对一 (从两端都可以维护表的数据) 手动配置 --生成表


手写持久化类 Dept1 Emp1
写对应的映射文件 将映射文件关联到主配置文件

集合中只能存放对象


数据  int 123   Integer 对象   装箱


从集合中取数据 自动拆箱  


具有双向关联关系的表可以从两端维护数据




单向关联   































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值