Hibernate 开发流程

Hibernate内部分装的技术:JDBC(Java Data Base Connectivity), JTA(Java Transaction API) , JNDI(Java Naming and Directory Interface)
Hibernate 提供的api
访问数据库的操作的接口:
	Session	Transaction	Query	Criteria
用于配置hibernate的接口:	Configuration
回调接口,是应用程序接收hibernate内部发生的事件,并作出相应的回应
	Interceptor		Lifecycle	Validatable
用于扩展hibernate功能的接口
	UserType		CompositeUserType		IdentifierGenerator

Hibernate 的核心接口:

  

Configuration:
作用:配置Hibernate,创建SessionFactory
特点:根启动
	SessionFactory:
		作用:初始化Hibernate , 创建Session, 充当数据存储源的代理
		特点:一个SessionFactory对应一个数据存储资源。
			 线程安全,这意味着它的同一个实例可以被应用到不同的线程
			 它是重量级的,因为它需要一个很大的缓存,来存放预定义的SQL语句以及映射元数据。(这个缓存被称为Hibernate的第二级缓存)
	Session:
		作用:负责增、删、改、查和加载
		特点:线程不安全--------设计软件架构的时候应避免多线程共享
			 是轻量级的----创建和销毁不需要消耗太多资源
		描述:Session 也被称为持久化管理器几乎提供了和持久化相关的全部操作,每个Session实例有一个自己缓存,成为Hibernate 的第一级缓存。它存放当前工作单元加载的对象。
	Transaction:
		作用:管理事务
	Query和Criteria
		作用:数据库查询
		描述:这两个接口主要用于向数据库查询对象,并控制执行查询的过程

Hibernate的配置:
一、	基本配置
a)	在Hibernate的软件包中提供了hibernate.properties文件中包含了有关配置数据库信息的所有代码
二、	类的持久化----持久化的类必须符合JavaBean的规范:
      私有属性,
    get、set方法,空构造------------Hibernate通过反射实现实例化
    	注意:Hibernate并不要求持久化类必须实现java.io.Serializable接口。但是对于采用分布式Java应用,当Java对象在不同的进程节点之间传输时,这个对象所属的类必须实现Serializable接口。此外,在Java Web应用中,如果希望对HttpSession中的Java对象进行持久化,那么这个Java对象所属的类也必须实现Serializable接口。

  待续............

时间: 2025-01-13 16:46:17

Hibernate 开发流程的相关文章

Hibernate开发流程

一:基本开发流程: -->导入jar包,hibernate.jar + required + jpa + 数据库驱动包 -->对实体类进行映射,写配置文件 -->src目录下添加hibernate.cfg.xml文件 数据库相关配置,其他相关配置(是否显示sql,是否自动建表等),映射文件加载 -->测试DAO 二:hibernate程序执行流程 三:hibernate.cfg.xml配置详解 1 <!DOCTYPE hibernate-configuration PUBLI

JAVAWEB开发之Hibernate详解(一)——Hibernate的框架概述、开发流程、CURD操作和核心配置与API以及Hibernate日志的使用

Hibernate框架概述 什么是Hibernate? 框架:软件的半成品,完成部分代码的功能. Hibernate:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思想来操作数据库.Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序中使用,也可以在Servlet/JSP的web应用程序中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成

SSH框架的开发流程

最近一段时间在使用SSH框架开发一个系统,对SSH框架又重新学习一遍.发现之前学的一些东西都忘记了,而且对很多知识点都理解的不是很透彻.最近在学习的过程中,又对一些知识点重新整理了下,但是还是比较凌乱,等项目完结后,我会再整体把开发流程梳理一遍.今天只是想跟大家分享一下大概的一个流程. 1.首先把需要的jar包都准备好,大概有86个包. 2.对于一个好的项目应该有一个非常好的结构. --src ----domain ----dao ----controller 2.根据你的数据库表写你的doma

基于微信硬件公众平台的智能控制开发流程

一.微信硬件公众平台整体架构 上一篇<物联网架构场景技术分析>已经探讨和分析了物联网架构的演进,基于微信硬件公众平台的智能控制方案即属于文中的第三种架构--基于统一后台服务的物联架构.其中的架构如下: 各部分的角色和分工如下: 1.微信硬件公众号平台服务器,是物联网的基础和核心部分,其负责外设设备ID的认证,类似公安部给每个公民一个身份证一样,保证每个外设都有一个合法并且唯一的ID.目前微信平台的设备ID由两部分组成,一部分是厂商运维的公众号(即手机微信关注的公众号)的原始ID,称为设备类型,

EAM系统开发流程

EAM系统开发流程主要包括三个阶段: EAM系统分析 主要是通过规范EAM系统内的信息,进一步把它们整合成一个完整的EAM原型.具体的工作是定义EAM系统中的词汇和建立一组用来生成具有可重用和可配置的概念模型的规范.这些对实施具体系统有指导作用,并且是其基础,类似施工手册.例如,对于资产可以定义为一个能跟踪.修复后可重复使用的.唯一具有独立名称的实体.  EAM系统设计 主要是开发一个高度灵活的通用架构,并且提供一个生产规范.软件构架为组件或对象的重组和配置提供了技术保证,为实现系统的灵活通用提

微信支付的开发流程

最近在公司做了微信支付的接入,这里总结下开发的一些经验 注意,我使用的是微信开放平台的支付,与手机app相关,而与公众账号无关.   微信支付的主要操作流程 1.用户浏览app,选定商品然后下单. 2.服务器处理订单逻辑,开始正式发起支付流程 3.首先,后台服务器向weixin服务器发起请求,获取一个token. 4.后台服务器拿到token,使用和其他参数加密,再次向weixin服务器发起请求,获取一个预支付prepayid 5.后台服务器将该prepayid返回给app客户端 6.app调用

互联网公司的“敏捷开发”流程是怎么样的,每个职位的角色和分工是什么?

作者:暗灭 第一   为什么需要敏捷开发. 在几万年以前,软件项目的开发都是以年来计算的,这代表什么意思呢 ?需求设计了半年多,方案设计做了半年多,开发了三年多,测试了半年多,修改Bug用了半年多.总计花了很长很长的时间,然后上线后发现有很多需求已经不存在了,同时又出现了很多新的需求. 怎么办?继续改.这一改又是半年多的时间过去了.马丹用户的需求还再改,怎么办? 这是困扰软件开发项目的最大的问题,越大的项目,参与的人越多,风险越大.文档越规范,维护起来的难度就越高,导致项目中遇到的问题越来越多.

oAuth的认知以及开发流程

什么是OAUTH OAUTH协议为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的.oAuth是Open Authorization的简写. OAUTH定义 OAUTH是一种开放的协议,为桌面.手机或web应用提供了一种简单的,标准的方式去访问需要用户授权的API服务.OAUTH类似于Flickr Auth.Go

开发流程的选择

软件工程把这些相关的技术和过程统一到一个体系中,叫作"软件开发流程",软件开发流程的目的是为了提高软件开发.运营和维护的效率,以及提升用户满意度.软件可靠性和可维护性. 软件开发流程有:写了再改模式.瀑布模型.瀑布模型的各种变形.统一流程.老板驱动的流程和渐进交付的流程. 在这些开发流程中,我比较支持瀑布模型的各种变形中的大瀑布带着小瀑布,这个对开发者的个人能力要求比较高,需要吧各个子系统统一到最后做系统测试,用户只有到最后才能看到结果,从一开始的需要一个统一的需求分析和构架设计,然后