基本上都是以前看书后写下的笔记和实践操作的记录。   一、关于查询迭代函数list.iterator(),Query.iterate()的比较用hibernate进行查询,然后对查询结果进行迭代,有两种实现方法:1、List ls = session.createQuery("...").list();Iterator iter = ls.iterator();while(iter.hasNext()){//...Object obj = (Object)iter.next();//以对象形式返回结果//...}2、Iterator iter = session.createQu ...
闲着没事做,整理了hibernate持久化对象操作相关内容,供大家参考。   一、由session缓存清理操作引起的问题(一)session在一下不同的情况下进行清理操作:1、在查询执行之前,如果发现缓存中的持久化对象属性发生了变化,session会先执行清理,保证查询的数据不脏数据。2、在调用事务提交commit()的时候,commit()方法先清理缓存,然后再向数据库提交事务3、调用session.flush()的时候,(与commit不同的是,flush()只是执行清理工作)。(二)session执行清理sql语句的顺序1、所有对持久对象进行插入的语句,其顺序按照调用ses ...
      最近闲着没事,就整理了hibernate的一些东西,供大家参考。一、一对一关联在hibernate中的实现一对一关联有两种实现方法:主键关联和外键关联。主键关联是使两个表共享一个主键。比如,有表A和B,表A的主键为aid,那么表B 就把A的主键aid同时作为主键和外键使用。A的映射文件:<class name="A" table="A">        <id name="aId" type="java.lang.String">&nbs ...
      NULL Object空对象模式:当你在处理可能会出现null的对象时,可能要产生相对乏味的代码来做相应的处理,使用空对象模式可以接受null,并返回相应的信息。      空对象模式通常会作为一个单独的空对象类,封装一个默认的行为。 Interface Log{public void log();} class FileLog extends Log{public void log(){}} class ConsoleLog extends Log{public void l ...
      proxy代理模式,其意图是"为其他对象提供一种代理以控制对这个对象的访问",通俗的讲就是,一个类A请一个代言人C去跟另一个类B打交道。在"四人帮"的《设计模式》中代理一章有关代理的"动机"的那节,举文档编辑器加载图像为例,说得很形象、透彻。       根据不同的用途,proxy代理模式又可以分为:远程代理、虚代理、访问控制(保护)代理、引用代理、审计代理、同步化代理、copy-on-write代理、缓存代理。      ...
      visitor访问者模式的意图,在《设计模式》里这样描述:“表示一个作用于某个对象结构中的各元素的操作。它使可以在不改变各元素的类的前提下定义作用于这些元素的新操作。”。就是说:在坚持“开闭原则”的情况下,访问者可以用来扩展一个现有的类层次结构来实现新的行为。更通俗的讲,如果不愿意修改类层次结构内部代码或者类层次结构的代码难以修改的情况下,如果该类层次结构在设计实现时使用了visitor访问者模式,那么可以实现“在不修改类层次结构代码的前提下”进行扩展。 &n ...
      command命令模式,将请求封装成对象,通过对象的形式来实现对请求的控制,例如排序、执行和取消等。        command命令模式也是一个遵循开闭原则的模式,避免了传统的if else的硬代码,又可以容易地把新的命令加入系统。        先声明一个公共接口,各个命令各自实现该接口。要使用该命令时,触发该命令或者向命令的使用者注册该命令,执行相应的方法即可。   & ...
      template method模版方法模式,说白了,就是抽象类的运用。模版方法模式很多时候都在用,利用该模式可以实现提高代码的复用率。它把各子类相同的方法放在抽象类,避免了编写重复的代码,而其他可变的方法强制型地在各子类各自实现,实现代码规范性。      在我们使用的一些软件包的时候,有一些要求我们继承其某个类,并实现其方法,例如struts的Action,要求实现execute方法。原因是在Action内部定义了一个实现其功能的代码架构,用户不必做其他的事情,只要在继承并实现ex ...
      state状态模式,在代码的结构上跟策略模式没什么区别,只是它们的应用则重点不同。一个对象的行为依赖以一些状态的变化而随之变化,一种传统的做法就是if else的条件判定硬代码,这样的代码级不美观,也不好扩展维护。采用state状态模式就是把各个不同状态的所以执行的代码分别放到不同的类中。
      strategy策略模式,策略即算法,策略模式是对算法的封装,把使用算法的使用者和算法本身分割开,分派给不同的对象管理。一系列的算法封装到一系列的策略类里面,作为一个抽象策略类的子类或接口的实现类。换句话说:就是准备一组算法,当条件或环境变化,需要不同的算法时,则向算法的使用者注册该算法,使得其可以在使用者的内部使用该算法。      传统的作法,是使用if else语句在方法中实现并选择不同的算法(很多使用面向对象语言编写程序的人还是停留在结构化的思维定势),这与面向对象 ...
linbzh
搜索本博客
存档
最新评论