欢迎来到天天文库
浏览记录
ID:38344860
大小:131.00 KB
页数:10页
时间:2019-06-10
《Hibernate串讲》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Hibernate一、基础知识1、Hibernate是对象/关系映射(Object/RelationMapping)的解决方案,是一个可以自动的根据xml配置文件来完成对象关系映射,并持久化到数据库的开源组件。get/set方法Serializable空构造方法2、Hibernate架构²POJO类(plainoldjavaobject普通Java类)²hibernate.cfg.xml²*.hbm.xml²Hibernate应用²表结构需要导入:类库lib:hibernate3.jar,Ojdbc14.jar等h
2、ibernate.cfg.xml配置文件设置重要的基础信息:连接数据库的驱动、用户名、密码,和映射文件路径等。4、Hibernate的优点:①不需要依赖容器、降低开发难度,减少代码量,开发周期比较快;②封装了JDBC,自动生成效率较高的SQL代码;③提供状态管理;④提供了一个面向对象的查询语言HQL。二、几个重要的类ØConfiguration类(负责管理Hibernate的配置信息)当创建SessionFactory时,Configuration实例可以指定使用哪一个映射文挡。应用程序通常只是创建一个Config
3、uration实例,并通过它创建一个SessionFactory实例。ØSessionFactory类(负责创建Session实例)它是线程安全的,可以被多线程调用以取得Session,而且构造SessionFactory很消耗资源,所以多数情况下一个应用中只初始化一个SessionFactory,为不同的线程提供Session。ØSession类OO设计之前工作:①写好Pojo②建好表③配好xml文件Session是Hibernate运作的中心,对象的生命周期、事务的管理、数据库的存取都与Session息息相关。
4、Session不是线程安全的,多个执行线程共享一个Session,将会发生数据共享而发生混乱问题。为了解决此问题,可以采用ThreadLocal变量,使用它可以有效隔离执行所使用的数据,也就避开了Session的多线程之间的数据共享问题。DB设计如何调用hibernateAPI?1、创建Configuration对象。(解析配置文件)Configurationconfig=newConfiguration();2、通过Configuration创建SessionFactory(线程安全的重量级组件)。config=
5、config.configure();//configure()方法会在CLASSPATH下寻找hibernate.cfg.xmlSessionFactorysessionFactory=config.buildSessionFactory();//创建SessionFactory对象3、通过SessionFactory创建Session会话对象。Sessionsession=sessionFactory.openSession();//创建Session对象4、通过Session取得事务对象。Transactio
6、ntrans=session.beginTransaction();//开始事务5、通过session与数据库进行会话。session.save(objecto);//增session.delete(objecto);//删session.update(objecto);//改session.get(Classclazz,Serializableid);//根据Id查找对象session.createQuery(Stringsql);//自己拼HQL语言查找对象返回一个Query对象。6、提交操作,结束事务。Tra
7、ns.commit();7、关闭Sessionsession.close();注:第一步和第二步一般放在静态初始化代码块中执行。三、Hibernate中自带ID的generator的含义:1、identity:用于MySql数据库。特点:递增注:对于MySql数据库使用递增序列时需要在建表时对主键指定为auto_increment属性。2、sequence:用于Oracle数据库8、column="id">序列名3、native:跨数据库时使用,由底层方言产生。遇Oracle采用sequence;遇MySQL采用identityDefault.sequence为hibernate_seque
8、column="id">序列名3、native:跨数据库时使用,由底层方言产生。遇Oracle采用sequence;遇MySQL采用identityDefault.sequence为hibernate_seque
此文档下载收益归作者所有