- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hibernate学习笔记(一)
主配置文件:hibernate.cfg.xml整个hibernate项目中只有一个,包含三部分内容。连接数据库信息等。属性配置映射文件位置。映射文件是多个,一般是一个表一个,(多对多三个表是两个),表名.hbm.xml。一个映射文件使java项目中一个实体类与数据库中一张表形成对应关系。java反向工程做的三件事儿:1.生成一个实体类,pojo类,实现了serializable接口。2.生成映射文件3.在主配置文件中指向生成的映射文件。映射文件知识点:1.catelog指的数据库名称,name指向实体类,必须是全包名+类名。2.id只能出现一次,表示主键。3.column一定是指数据库表列名,property,id指的实体类属性名。基本概念和CRUD开发流程1.由Domain object - mapping - db。(官方推荐)2.由DB开始,用工具生成mapping和Domain object 。(使用较多)3.由映射文件开始。SessionFactory sessionFactory;Configuration cfg = new Configuration();cfg.configure();sessionFactory = cfg.buildSessionFactory();包装hibernate初始化的工具类:public final class HibernateUtil{private static SessionFactory sessionFactory;//防止被继承private HibernateUtil(){}//静态块在Java虚拟机加载类时就已经执行了,所以以后使用此工具类时就可以不用再new了+645//这儿也是用了单例模式static{Configuration cfg = new Configuration();cfg.configure();sessionFactory = cfg.buildSessionFactory();}//提供让外界访问的get方法public static SessionFactory getSessionFactory(){return sessionFactory.openSessionFactory();}}==========================Session的几个主要方法===============================1.save,persist保存数据,persist在事物外不会产生insert语句。2.delete删除对象3.update,更新对象,如果数据库中没有记录,会出现异常。4.get,根据Id查询,会立刻访问数据库。5.load,根据Id查询,(返回的是代理,不会立即访问数据库).6.saveOrUpdate,merge(根据Id和version的值来确定是save或update),调用merge你的对象还是托管的.7.lock(把对象变成持久对象,但不会同步对象的状态).===============================================================================提供get的一个例子==============================================================================用get方法执行查询的操作,如:Session s = null;try{s = HibernateUtil.getSession();Class usreClass = User.class;User user = (User)s.get(userClass,id);return user;}catch(){}finally{if(s != null){s.close();}}===============================================================================hibernate中对象的三种状态===============================================================================1.瞬时(transient): 数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与Session没有关联的对象。2.持久(persistent):数据库中有数据与只对应,当前与Session有关联,并且相关联的Session没有关闭,事务提交时会影响到数据库(hibernate能检测到).3.脱管(detached):数据库中有数据与之对应,但当前没有Sessi
文档评论(0)