随笔分类 -  hibernate

摘要:一、一级缓存 简单来说,同一个session中,你重复去获取同一个对象,如果Hibernate,每次都发出sql语句去查,太麻烦了,于是它每次先去一级缓存中查,如果没有就发出sql语句去数据库中查,同时把查到的对象保存在一级缓存中。下次要用的时候,还是先去一级缓存中查,查到了,就不用再去数据库中查了 阅读全文
posted @ 2018-02-14 10:22 菜鸡蔡文姬 阅读(126) 评论(0) 推荐(0)
摘要:一、对象状态简介 1.瞬时态(transient):数据库中没有数据与之对应,超过作用域会被JVM回收,一般是new出来的且与session没有关联的对象 2.持久态(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交.(持久 阅读全文
posted @ 2018-02-07 09:23 菜鸡蔡文姬 阅读(160) 评论(0) 推荐(0)
摘要:1. 级联操作用来说明当主对象进行某种操作时是否对其关联的从对象也作类似的操作,常用的cascade有none,all,save-update,delete,lock,refresh,evict,replicate,persist,merge,delete-orphan(one-to-many).一 阅读全文
posted @ 2018-02-07 09:20 菜鸡蔡文姬 阅读(182) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-02-07 09:17 菜鸡蔡文姬 阅读(58) 评论(0) 推荐(0)
摘要:四、一对一 一对一分为,基于主键的一对一,和基于外键的一对一。 基于主键的一对一,指的是,idCard表的主键就是外键,它的值参考person表的id,而不需要重新生成一个字段来记录到底这个idCard是指向哪个person的。 而基于外键的一对一,指的是,person的id我们自定,idCard的 阅读全文
posted @ 2018-02-07 09:08 菜鸡蔡文姬 阅读(188) 评论(0) 推荐(0)
摘要:三、一对多 1.在Department里添加集合属性 2.在Department.hbm.xml下添加映射 3.测试 执行这段代码可能会报错,因为在保存department的时候,hibernate还没有保存sets和e1,e2等对象。 如果发生了异常,在Department.hbm.xml的一对多 阅读全文
posted @ 2018-02-07 08:58 菜鸡蔡文姬 阅读(126) 评论(0) 推荐(0)
摘要:多对一 1.根据上图对象模型创建pojo 2.创建Employee.hbm.xml和Department.hbm.xml 3.创建hibernate.cfg.xml(添加hbm2ddl.auto属性让hibernate自动创建数据库) 4.结果 创建一个session,由于在加载hibernate. 阅读全文
posted @ 2018-02-07 08:15 菜鸡蔡文姬 阅读(92) 评论(0) 推荐(0)
摘要:一、hibernate对象的三种关系 1.one to one: 身份证--人 2.One to many: 部门--员工 many to one: 员工--部门 3.Many to many: 学生--老师 在编程中一般将多对多分解成两个多对一(或一对多)。 例如学生和课程就是多对多,多对多一般都 阅读全文
posted @ 2018-02-07 08:10 菜鸡蔡文姬 阅读(94) 评论(0) 推荐(0)
摘要:一、使用myeclipse,可以自动生成domain对象和关系映射文件。 1.让myeclipse连接上数据库 Window-->open perspective-->myeclipse database explorer New一个DataBase Driver 2.给项目增加Hibernate能 阅读全文
posted @ 2018-02-06 21:09 菜鸡蔡文姬 阅读(122) 评论(0) 推荐(0)
摘要:一、选课系统 1.建表 2.填充数据 3.逆向工程(优先生成主表,即student表和course表,再生成studcourse表) 这里我们可以看出,由于表之间的主外键关系,一个学生可以选多门课,一门课可以被多个人选,于是就生成了如上的domain对象。而且,在hbm.xml文件中还有<set>标 阅读全文
posted @ 2018-02-06 21:03 菜鸡蔡文姬 阅读(173) 评论(0) 推荐(0)
摘要:一、hibernate是什么? 1.hibernate是一个框架(framework) 2.hibernate是一个orm框架,Orm(object relation mapping)对象关系映射 框架 3.Hibernate处于项目的持久层位置(所以称hibernate为持久层框架) 4.Hibe 阅读全文
posted @ 2018-02-06 20:44 菜鸡蔡文姬 阅读(225) 评论(0) 推荐(0)
摘要:同一个线程的currentSession是同一个。 使用HibernateUtil可以不去hibernate.cfg.xml配置绑定信息,因为我们在代码里已经将它和本地线程绑定了(线程局部变量模式--一个变量在同一个线程里是同一个) 阅读全文
posted @ 2018-02-06 19:50 菜鸡蔡文姬 阅读(85) 评论(0) 推荐(0)
摘要:一、自动创建表 我们可以在hibernate.cfg.xml上配备属性,让hibernate给我们自动创建表。 在开发测试中,配置哪个都可以,但一般生成完数据库就会立即取消此配置。 二、事务回滚 如果在事务中有异常,我们是希望数据能够回滚的(不改变)。 三、configuration和配置文件 如果 阅读全文
posted @ 2018-02-06 18:30 菜鸡蔡文姬 阅读(133) 评论(0) 推荐(0)
摘要:基础案例-->用第一种开发方式 1.创建表: 创建domain对象(javabean对象/pojo对象),建议domain对象名称就是表名首字母大写,注意属性类型要与数据库层对应。 2.编写Employee.hbm.xml(DTD从网上下的hibernate开发包里搜User.hbm.xml): 3 阅读全文
posted @ 2018-02-06 17:56 菜鸡蔡文姬 阅读(130) 评论(0) 推荐(0)