2019独角兽企业重金招聘Python工程师标准>>>
对象关系映射(ORM):Hibernate ORM,其作用就是去映射对象和关系型数据库的,以达到程序中的业务逻辑和数据访问组件相分离。
Hibernate并不能提高对数据库的查询性能,我个人觉得使用它可以省去jdbc那样繁琐的工作,方言给了它还可以移植的功能,ibatis:半自动。
Spring中有个JDBC模板,可以自己写sql语句。领域模型和数据模型就是真实世界中业务对象的表现形式。业务对象:
◆域对象(实体对象)
◆过程对象(session会话)
◆时间对象(Message Bean)消息驱动。
Hibernate的实现步骤:
1:创建实体领域对象POJO
2:创建Hibernate配置文件(见附件:hibernate.cfg.xml)
3:创建Hibernate ORM文件(见附件:User.hbm.xml)
4:创建数据库表(见附件:create.java)
5:创建Hibernate API操作数据库
准备一、导入Hibernate库
准备二、添加配置文件hibernate.cfg.xml
准备三、添加映射文件UserInfo.hbm.xml
步骤一、创建Configuration
步骤二、创建SessionFactory
步骤三、打开Session
步骤四、开始一个事务
步骤五、持久化操作
步骤六、提交事务
步骤七、关闭session
原文链接: http://developer.51cto.com/art/200909/154722.htm
注意点:
(1)java应用程序不能方法private类型的getter 和setter方法,而hibernate可以访问各种级别的getter和setter方法
(2)在持久化类中,既可以把属性定义为基本类型,也可以定义为包装类型,他们对应的hibernate映射类型都是相同的,但是基本类型
无法表达null的,如int类型不填默认是0,而不是null,这样有时候要根据业务需求使用java包装类型
(3)默认情况下,hibernate根据对象的OID是不是为null,来确定对象是否处于临时状态
(4)hibernate在初始化阶段,会根据映射文件的映射信息,为所有的持久化类预定义增删改查语句,但HQL QBC语句只有在执行的时候
才动态的生成。
(5)为了解决关键字冲突 如“user”与数据库中的user会有冲突,可以采用`user`来标识。