学习Hibernate

1.eclipse 先在线安装Hibernate tools插件(搜索jboss 然后只选择hibernate tools),然后在window-preference-XML-XMLcatalog-add-把publicID改成URI-在location里面添加DTD(随便解压一个hibernate的核心包就有hibernate-configuration-3.0.dtd文件),然后在key哪里添加 http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd 然后点OK

2.建项目 创建hibernate的配置文件,

  1. 数据源信息 配置得快吐了
  2. 方言
  3. 格式化sql
  4. 是否打印sql
  5. 生成数据表得策略
  6. 字符编码
  7. 指定关联得xxxx.hbm.xml(这个操作要等做完第3步在做)

3.写个entity类,然后生成一个xxx.hbm.xm配置文件,然后进行第二部的第7小步

Hibernate对象的四种状态以及转化关系 如下图(图来源于猫儿36,侵权删)

学习Hibernate

下面是对hibernate的操作

  1. 从sessionFactory获取session
  2. 开启事务
  3. 利用session进行crud操作
  4. 提交事务
  5. 关闭session和sessionFactory

基本保存操作:

  1. save(),数据库采用自增id,对象若有id,则id不生效
  2. persist(),数据库采用自增id,若保存前对象有id,报错
  3. get(),发送查询语句,立即加载对象,若没有返回null
  4. load(),延迟加载 不用该对象 就不发送查询语句,若session未关闭,使用该对象而数据库没有对应字段则抛出异常,若在使用代理对象前关闭session则可能抛出懒加载异常,

    基本更新操作

  5. 更新一个持久化对象,在session未关闭之前 不需要显式调用update,事务会自己调用

  6. 不在同一session里面的对象要显式调用update(也就是更新一个游离对象)
  7. 如数据表中没有对应记录调用会抛出异常
  8. 若sesison关联了一个游离对象session中存在相同OID的持久化对象抛出异常(session中不需要他两个相同OID的对象)
  9. saveOrUpdate()方法,新对象若是游离对象则执行update操作,若是临时对象则执行save操作,当OID不为空,数据库没有对应记录 抛出异常
  10. 若在映射文件设置unsaved-value的值等于该对象的OID,该对象也被认为是游离对象,该对象会被insert
  11. meger方法

基本删除操作

  1. Delete,OID和数据库对应 删除,对不上抛出异常,删除后的对象不能执行保存和更新操作,因为有OID所以要在·Hibernate配置use_identifier_rollback为true
  2. evict方法 从session缓存中删除

调用session的dowork方法(利用匿名内部类) 然后就变成jdbc了;

触发器????????????????什么鬼

配置数据源一类的

对象关系映射文件hbm.xml文件:
啊啊啊啊啊啊啊啊啊 有点心浮气躁了 感觉自己静不下心来
HQL查询:面向对象的查询语言
休息,换个视频看看后面再来整理