Hibernate知识点的详解

Hibernate是全自动化的,以对象的方式来简单的操作数据库的,Hibernate适合于快速开发大型的项目。
然而DBUtils比Hibernate更加轻量级,在业务比较复杂的情况下使用Ibatis比使用Hibernate要好
而hibernate的缺点:在写sql的一些细节方面的给隐藏了,也就是一体机,正因为它是全自动化的,因此
,它的一些sql语句我们控制不了
每个不同的数据库都有它们自己的方言(dialect),而这个方言一定要配置,每个数据库的方言是不相
同的。每一个对象都应对应一个表,而hbm.xml是映射表的文件,sessionFactory主要是负责整个数据的
连接,启动事务,它是线程安全的,生成Session对象,而session呢它是一个单线程,它通过
getCurrentSession方法得到当前的session,如果没有当前session的话,
就通过opeanSession方法来重新打开一个session,在hibernate.cfg.xml文件中进行配置,
show——sql是用来显示sql语句的,而hbm2ddl.auto是用于,当数据库没有创建表,
那么它就会自动去创建,<mapping resource=....>这个是用于映射配置文件的,
然而,hibernate.properties这个文件跟hibernate.cfg.xml效果是一样的,
但是这个文件中的配置没有使用等号,它可以有空隔,风险要大,他里面的方言配置的比较多,
而hbm.xml类型的文件主要是一个对象的配置文件,在hibernate中必须要配置一个
主键,接下来是对属性的配置,可以不用写类型,那么它会根据javabean中的属性类型映射到表中去找相
应的字段,指定属性的类型,是因为它的类型不确定,然后在静态块中初始化,再调用configure方法的
时候加载驱动,然后打开事务,创建Event对象,然后将对象保存在事务里,然后在提交到数据库中。
主要是对hibernate的一系列的工作原理进行了解析。

关于Hibernate小的实例说明:
* 拍卖会的用户主要是seller(拍卖者),bidder(竞价者),bid(出价),bugnow(最后进价成功的那
个竞价者),最要是讲解了hibernate的增、改、查。

* 把对象保存在数据库中是持久化对象,Gavin King是hibernate的作者。setFlushMode是刷新方法,
当提交到数据库时调用这个方法,而HQL是hibernate的查询方法,是面向对象的,对sql进行了封装。

* 而查询的方法分为几种:慢查询,快查询,条件查询,Example查询。
* 慢查询:当查询的数量小,用慢的查询来演示比较好
* 快查询:分页从哪里开始查询,通过调用setFirstResult方法来进行分页,可返回迭代,那么它会先去
  缓存中查找,如果放入了list中,再进行迭代的话,那么它会先去list中查找,这样的话,查找的速度快
  ,在这里还牵涉到了锁的问题,乐观锁和悲观锁
* 乐观锁:比如svn当我们的版本发生冲突的话,它会提示我们,还可以进行修改。
* 悲观锁:如vss当一个人修改了这个文件的话,那么另一个人就不能去修改这个文件了,
  这样的话是不太好的,当我们要修改的文件是比较重要的,就可以使用这个。

*条件查询(createCriteria):查询某个对象的属性,根据类的class对象来查询,当需要拿出一个对象时
,调用get方法,它相对要安全一些,而load方法跟get方法效果差不多,如果数据库没有数据的话,那么
它就会抛异常

* Example查询:传入一个对象,有什么条件它就会查询出什么条件的相关信息来。

你可能感兴趣的:(sql,Hibernate,SVN,ibatis,vss)