俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: 开源框架的学习思路(个人总结) Hibernate的运行原理总结 Hibernate实现原理中的两个主要技术 Java的反射技术的原理 反射的应用和例子 反射的缺点 编写一个模拟Hibernate的demo(V1.0版本) 后续的模拟ORM框架的设计思路 开源框架的学习思路(个人经验,欢迎提出意见) 框架是为了解决开发中遇到的一个个问题而诞生的,程序员是为了解决问题而学习框架的,这才是正确的学习之道!一个框…
1. 什么是ORM ORM的全称是Object Relational Mapping,即对象关系映射.它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作.因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作. 2.什么是Hibernate 对于Hibernate的称呼有很多,比如工具.技术.框架以及解决方案等,这些都可以,重要的是大家要知道它的作用.在这里我习惯性称它为框架,它是一种能实现ORM的框架.能实…
Hibernate核心接口和工作原理 Hibernate有五大核心接口,分别是:Session .Transaction .Query .SessionFactory .Configuration .这五个接口构成了Hibernate运行的基本要素,可以执行存取,持久化,事务管理等操作.这五个接口可以位于系统的业务逻辑层和持久化层.下面是一张Hibernate的关系图: (1)SessionFactory:这是Hibernate的关键对象,它是单个数据库映射关系经过编译后的内存镜像,它也是线程安…
Hibernate核心接口 Hibernate有五大核心接口,分别是:Session Transaction Query SessionFactoryConfiguration .这五个接口构成了Hibernate运行的基本要素,可以执行存取,持久化,事务管理等操作.这五个接口可以位于系统的业务逻辑层和持久化层.下面是一张Hibernate的关系图: Session接口: Session接口 Session 接口对于Hibernate 开发人员来说是一个最重要的接口.然而在Hibernate中,…
问题Initial SessionFactory creation failed.org.hibernate.HibernateException: /hibernate.cfg.xml not found解决方法 http://stackoverflow.com/questions/15258594/hibernate-exception-hibernate-cfg-xml-not-found这个提示很明显是资源文件没配置对,所以在运行时找不到,那么怎么配置才对呢? 网上找到一个方法: htt…
Hibernate简介 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任. --------------------------- Hibernate核心…
初次配置hibernate在myeclipse上: 出现三个问题,怎么都不好使,比对代码,没有问题,查看路径还是没有问题: 1.org.hibernate.HibernateException: /hibernate.cfg.xml not found 路径问题: 说找不到我的hibernate.cfg.xml,比对之后发现没有问题: 配置好后应该是这样的,然后mapping中要使用当前的文件路径,把之前的都删了. 2.This project is not a MyEclipse Hibern…
Hibernate之Hibernate环境搭建 一.Hibernate环境搭建的步骤 1.添加Hibernate && SQLServer 的Jar antlr-2.7.7.jar dom4j-1.6.1.jar hibernate-commons-annotations-4.0.5.Final.jar hibernate-core-4.3.11.Final.jar hibernate-jpa-2.1-api-1.0.0.Final.jar jandex-1.1.0.Final.jar j…
Hibernate Save hibernate save()方法能够保存实体到数据库,正如方法名称save这个单词所表明的意思.我们能够在事务之外调用这个方法,这也是我不喜欢使用这个方法保存数据的原因.假如两个实体之间有关系(例如employee表和address表有一对一关系),如果在没有事务的情况下调用这个方法保存employee这个实体,除非调用flush()这个方法,否则仅仅employee实体会被保存. Employee.java 为了方便理解,简化Employee.java的属性.…
理解和学习,使自己在做项目中更加得心应手. 第一方面:开发速度的对比就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好Hibernate. 比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求去考虑究竟哪一个更适合项目开发,比如:一个项目中用到的复杂查询基本没有,就是简单的增删改查,这样选择hibernate效率就很快了,因为基本的sql语句已经被封装好了,根…