![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NHIbernate框架学习
文章平均质量分 78
gooddasenlin
这个作者很懒,什么都没留下…
展开
-
NHibernate学习手记(2) - NH的系统架构
Hibernate的名气实在太大,甚至已经成为Java社区的持久层技术的事实标准!作为Hibernate的孪生兄弟,NH从一诞生便是头顶光环,难免会给我们这些NH beginner造成或多或少的心理压力,这也可能是为什么.net项目组迟迟不引入O/R mapping的的原因之一。本文中并不打算评价O/R Mapping到底有什么好处,因为这个话题实在已经过时了。从Java社区对Hibern转载 2008-09-12 17:54:00 · 544 阅读 · 0 评论 -
NHibernate学习手记(4) - 持久化类(Persistent class)的设计
NH中把需要持久化服务(保存到数据库)的类称为Persistent class,目的和常见的Serializable(可序列化)一样,都是把程序运行时创建的临时对象(transient objects)保存到数据库、文件等介质中。NH的Online Document推荐的持久化类设计模式称为POCO(Plain Old CLR Object Model)和我们的BusinessEnitity层转载 2008-10-22 15:29:00 · 650 阅读 · 0 评论 -
NHibernate学习笔记(二):one-to-one关系映射
本文的内容:1.介绍NH如何处理对象间one-to-ont的映射关系;经验教训:1.操作一对一关联关系中的一个对象时,得在程序中指定如何与另一个对象关联,如在Student类中写this.NativePlace.Student = this;2.在为类写映射文件时,必须指定类的具体的名称空间,若则运行时会出现"找不到***映射文件"的问题; 这两点都困扰了我好长一段时间,应该要引起注意.点击下载转载 2008-10-25 11:36:00 · 972 阅读 · 0 评论 -
NHibernate 综合介绍
在一家公司看到大家天天都要维护大量的StoredProcedure ,觉得是在是一件痛苦的事,,如果能遵照OO和分层的思想来编写这类软件的话,可能会轻松些。。所以找了些相关方面的资料.NHibernate 博客园专题之一张老三 2005-02-13 3258 本文约定:1. Nhibernate简写为NHB;2. 本文例子的开发平台为win2000pro+sp4, sql se转载 2008-10-25 11:33:00 · 579 阅读 · 0 评论 -
NHibernate学习笔记(一):初识NHibernate
本文参考张老三大哥在网上发布的《NHibernate(一)》(主要)和其它一些从网上的资料,做为学习NHibernate的基础,非常感谢这些大侠,这里还要特别感谢陈锂榕同学,是你们帮助了我更好的学习NHibernate。本文约定:1.NHibernate简写为NH;2.本文例子的开发平台为:WinXP + sp2 ,SqlServer 2005,NHibernate 1.0.0.0;3.本文只是本转载 2008-10-25 11:35:00 · 609 阅读 · 0 评论 -
NHibernate学习笔记(三):many-to-one/one-to-many/many-to-many关系映射
本文的内容: 介绍NH如何处理对象间many-to-one,one-to-many和many-to-many的双向映射关系(本文主要介绍了映射文件,对于类的生成可以跟据前两篇描述的方法生成);经验教训:相关类图:(下面的类图包含一对一,多对一,一对多和多对多)many-to-one:描述多对一的一种数据模型,它指定many一方是不能独立存在的,我个人认为many-to-one是NHB中保证数据有转载 2008-10-25 11:37:00 · 850 阅读 · 1 评论 -
Inverse 和 cascade的区别
Inverse 和 cascade的区别 实际上,他们是互不相关的概念:inverse是指的关联关系的控制方向,而cascade指的是层级之间的连锁操作。级联删除在默认情况下,当Hibernate删除一个持久化对象时,不会自动删除与他关联的其他持久化对象,如果希望Hibernate删除Customer对象时,自动删除和Customer关联的Order对象,可以把cascade的属性设置为del原创 2008-12-16 18:31:00 · 692 阅读 · 0 评论 -
异常:could not initialize proxy - the owning Session was closed
其实这个异常写的非常之清楚,就是会话关闭,无法对Hibernate实体进行操作。造成这样的情况有很多,什么书写错误啊,逻辑错误啊。 但就此说一下关于lazy机制: 延迟初始化错误是运用Hibernate开发项目时最常见的错误。如果对一个类或者集合配置了延迟检索策略,那么必须当代理类实例或代理集合处于持久化状态(即处于Session范围内)时,才能初始化它。如果在游离状态原创 2008-12-16 18:36:00 · 836 阅读 · 0 评论 -
could not initialize proxy - no Session
在中这错误很常见,字面意义就是不能被初始化,因为session已经关闭了。简单理解就是因为,你使用了lazy=true,这样hibernate在从数据库中调数据的时候是不会把关联的对象查出来的,而是保存一个获取值得方法,在你使用getXXX()调用的时候,hiberante会利用这个保存的方法去从数据库中取数据。而往往我们在jsp页面中使用getXXX()准备展示数据的时候,session早已经在原创 2008-12-16 18:37:00 · 1087 阅读 · 0 评论 -
NHibernate的关联映射(one-to-one,one-to-many,many-to-many)以及cascade分析
一、典型设置cascade:(默认为none)级联。指明哪些操作会从对象级联到关联的对象。inverse: (默认为false) 标记这个集合作为双向关联关系中的方向一端。在双向关联时才需要设置。在设为false的一端对cascade进行维护。处于性能的考虑,一般在数据少的一端或者被依赖端设置inverse="true",而让数据多的一段维护cascade。1.one-to-one原创 2008-12-16 18:38:00 · 1042 阅读 · 0 评论 -
hibernate 高级查询 query 或查询 or ,Restrictions
今天用了写hibernate高级查询时用了Restrictions(当然Expression也是可以以的)这个类.感觉不错.下面的代码写的不易读.其实核心就是一句Restrictions.or(Restrictions.like(),Restrictions.or(Restrictions.like,........))里面的or可以无限加的.还是比较好用Session session = get原创 2008-12-18 16:16:00 · 1222 阅读 · 0 评论 -
NHibernate学习手记(6) - 实现one2many/many2one的映射
一对多(one2many)是最常见的对象关系之一,本文将通过示例说明如何使用NH来实现one2many关系的映射,以及如何实现Parent/Child对象之间的级连操作。根据约定,本文将通过Category和Item对象来描述one2many的关系,即一个Category对象对应多个Item对象。主要内容:1、编写POCO类2、准备数据库3、编写配置文件4、级连(cascading)操作示例一、编转载 2008-10-22 15:30:00 · 500 阅读 · 0 评论 -
Nhibernate与Ibatisnet开发分析
使用Ibatisnet开始已经有一段时间了,最近刚研究了一下Nhibernate2.0的开发。 现将想分析一会我对这两种数据持久层框架使用的心得。 1.从框架的整体而言,二者是非常相近的。如果你学会了其中一种框架,再去学习其它框架就会容易很多。(ORM) 2.从二者对数据库的增删改查操作来说,都很灵活。 IBatisent :采用动态查询语言,对于多条件组原创 2008-10-23 09:59:00 · 709 阅读 · 0 评论 -
NHibernate学习手记(5) - 简单的对象映射
NH的online document中讨论了三种情况的的o/r mapping:1)one-to-one2)one-to-many / many-to-one3)many-to-many因为官方文档介绍得很少,学起来非常费劲,我在这里做一个学习总结,希望能引起大家的继续讨论。为了便于描述。,本系列学习手记将引入Category和Item对象,分别实现以下关系:1)Category和Item对象之前转载 2008-10-22 15:29:00 · 546 阅读 · 0 评论 -
NHibernate学习手记(6) - 实现one2many/many2one的映射
一对多(one2many)是最常见的对象关系之一,本文将通过示例说明如何使用NH来实现one2many关系的映射,以及如何实现Parent/Child对象之间的级连操作。根据约定,本文将通过Category和Item对象来描述one2many的关系,即一个Category对象对应多个Item对象。主要内容:1、编写POCO类2、准备数据库3、编写配置文件4、级连(cascading)操作示例一、编转载 2008-09-12 17:59:00 · 571 阅读 · 0 评论 -
NHibernate学习手记(1) - 对象的简单CRUD操作
你是否正在为编写和维护冗长和复杂的SQL语句而苦恼?你是否厌倦了继续以面向过程的开发方式,而想开始尝试以面向对象的方式去思考?你是否想跳出重复编写SQL语句的囹囵,而想更加专注于实现用户需求的逻辑实现?...和许多开发人员一样,我非常反感(甚至是恐惧)sql语句,这种当初设计用来和数据库进行会话的语言,想不到现在被发扬光大到可以用来编写业务逻辑(通过任意复杂的组合)。但我们完全转载 2008-09-12 17:53:00 · 406 阅读 · 0 评论 -
HQL语句大全
Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。 第 15 章 HQL: Hibernate查询语言Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常转载 2008-09-16 14:24:00 · 1108 阅读 · 0 评论 -
NHibernate学习手记(5) - 简单的对象映射
NH的online document中讨论了三种情况的的o/r mapping:1)one-to-one2)one-to-many / many-to-one3)many-to-many因为官方文档介绍得很少,学起来非常费劲,我在这里做一个学习总结,希望能引起大家的继续讨论。为了便于描述。,本系列学习手记将引入Category和Item对象,分别实现以下关系:1)Category和Item对象之前转载 2008-09-12 17:58:00 · 541 阅读 · 0 评论 -
NHibernate学习手记(3) - NH的配置信息
作为一种通用的持久层框架,NH可以通过配置来指定所使用的数据库类型,并且可根据不同的数据库调整NH的运行参数。这些配置信息通常保存在配置文件中,当数据库配置发生改变时,我们只需要修改配置文件即可,不需要修改代码和编译。主要内容:1、NH支持的配置参数2、设置NH配置参数的若干方法 一、NH支持的配置参数NH初始化NHibernate.Cfg.Configuration对象时转载 2008-09-12 17:55:00 · 469 阅读 · 0 评论 -
NHibernate学习手记(4) - 持久化类(Persistent class)的设计
NH中把需要持久化服务(保存到数据库)的类称为Persistent class,目的和常见的Serializable(可序列化)一样,都是把程序运行时创建的临时对象(transient objects)保存到数据库、文件等介质中。NH的Online Document推荐的持久化类设计模式称为POCO(Plain Old CLR Object Model)和我们的BusinessEnitit转载 2008-09-12 17:57:00 · 497 阅读 · 0 评论 -
NHibernate使用心得
关于Nhibernate使用的几个注意点: 1.配置文件,嵌入资源。2.HQL语言。3.one-to-one,one-to-many/many-to-one,many-to-many.4.session.get等等5.建立数据库时的主外键关系必须明确,否则one-to-many等无法由模板自动生成。原创 2008-09-16 16:57:00 · 491 阅读 · 0 评论 -
NHibernate学习手记(1) - 对象的简单CRUD操作
你是否正在为编写和维护冗长和复杂的SQL语句而苦恼?你是否厌倦了继续以面向过程的开发方式,而想开始尝试以面向对象的方式去思考?你是否想跳出重复编写SQL语句的囹囵,而想更加专注于实现用户需求的逻辑实现?...和许多开发人员一样,我非常反感(甚至是恐惧)sql语句,这种当初设计用来和数据库进行会话的语言,想不到现在被发扬光大到可以用来编写业务逻辑(通过任意复杂的组合)。但我们完全转载 2008-10-22 15:26:00 · 423 阅读 · 0 评论 -
NHibernate学习手记(2) - NH的系统架构
Hibernate的名气实在太大,甚至已经成为Java社区的持久层技术的事实标准!作为Hibernate的孪生兄弟,NH从一诞生便是头顶光环,难免会给我们这些NH beginner造成或多或少的心理压力,这也可能是为什么.net项目组迟迟不引入O/R mapping的的原因之一。本文中并不打算评价O/R Mapping到底有什么好处,因为这个话题实在已经过时了。从Java社区对Hibern转载 2008-10-22 15:27:00 · 504 阅读 · 0 评论 -
NHibernate学习手记(3) - NH的配置信息
作为一种通用的持久层框架,NH可以通过配置来指定所使用的数据库类型,并且可根据不同的数据库调整NH的运行参数。这些配置信息通常保存在配置文件中,当数据库配置发生改变时,我们只需要修改配置文件即可,不需要修改代码和编译。主要内容:1、NH支持的配置参数2、设置NH配置参数的若干方法 一、NH支持的配置参数NH初始化NHibernate.Cfg.Configuration对象时转载 2008-10-22 15:28:00 · 546 阅读 · 0 评论 -
NHibernate中DateTime,int,bool空值的处理方法
我们知道,数据库中DateTime子段允许为空(null)。当我们在ASP.NET中映射为DateTime是就不允为空了。该怎么处理?基本有两种办法: (1)修改.hbm.xml文件中的类型,该"DateTime"为"String",该实体文件中的属性类型"DateTime"为"String"。 处理的时候,该属性值要么为空,要么是具有正确日期格式的字符串。 该方法只适合DateTim转载 2008-12-18 16:17:00 · 1016 阅读 · 0 评论