摘要: 使用hibernate实现树形结构无限级分类 在系统中,经常会用到无限级的树形结构分类,如组织机构管理、商品/地区分类等等。一般无外采用两种方式: 一是类似struts-menu(http://struts-menu.sourceforge.net)的XML文件管理方式,配置起来比较方便,但很难与系统中其它应用数据集成; 二是使用数据库存储,定义父子关系。 在我们现在开发的一个产品中,使用hibernate实现了一套树形结构的处理方法,简介如下: ... 阅读全文
posted @ 2007-10-27 18:04 hibernate3例子 阅读(176) 评论(0) 推荐(0) 编辑
摘要: update和saveOrUpdate详解先来点概念: 在Hibernate中,最核心的概念就是对PO的状态管理。一个PO有三种状态: 1、未被持久化的VO 此时就是一个内存对象VO,由JVM管理生命周期 2、已被持久化的PO,并且在Session生命周期内 此时映射数据库数据,由数据库管理生命周期 3、曾被持久化过,但现在和Session已经detached了,以VO的身份在运行 这种和Session已经detached的PO还能够进入另一个Session,继续进行PO状态管理,此时它就成为PO的第二种状态了。这种PO实际上是跨了Session进行了状态维护的。 在传统的JDO1.x中,PO 阅读全文
posted @ 2007-10-27 18:03 hibernate3例子 阅读(255) 评论(0) 推荐(0) 编辑
摘要: Hibernate为什么如此成功?Why This Project Is Successful 这篇文章是Gavin King写的,非常有趣,充分体现了Hibernate的设计理念,我粗略的意译如下: 下面是对Hibernate开发工作的个人想法,正是这些工作使得Hibernate如此迅速的得到广泛的欢迎。 1、飞快的版本发布 保持活跃的开发速度,经常进行版本发布,甚至几天之内就从前一个版本开发到下一个版本。这样是保证软件远离Bug的最好的办法,也可以让用户感到很放心,确信Hibernate的开发十分活跃,另外这样做也有一大好处,就是可以发现哪些功能是用户真正需要的。 2、回归测试 我想现在整 阅读全文
posted @ 2007-10-27 18:02 hibernate3例子 阅读(239) 评论(0) 推荐(0) 编辑
摘要: Spring的注入方式详解Spring有三个注入方式,type1,type2,type3type1 接口依赖type2 setter/gettertype3 构造方法type2,type3较用常用首先来看一下type2type2 setter/getter(引用注入)例如,存在一个User类和Home类user类里一个userName;一个Home对象的属性.public class User { private String userName; private Home myHome; public Home getMyHome() { return myHome; } public voi 阅读全文
posted @ 2007-10-27 18:00 hibernate3例子 阅读(521) 评论(0) 推荐(0) 编辑
摘要: Spring的MVC模型运行序列分析1)假定你的请求为http://localhost:8080/springapp/index.jsp2)为安全考虑,在index.jsp中将请求redirect到WEB-INF目录下: <c:redirect url="/hello.htm"/>3)在web.xml中,对*.htm的请求都发到org.springframework.web.servlet.DispatcherServlet进行处理: <servlet> <servlet-name>springapp</servlet-name&g 阅读全文
posted @ 2007-10-27 17:59 hibernate3例子 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 五个理由来热爱Spring 1. Spring 提供更好的优势 在河流中,我学会了更多地使用我的腰和背来划桨,因为我的手臂肌肉无法坚持整日在河上划桨。我变得更加高效;我获得了更好的利用率。借助于Spring,我可以使每行代码做更多的事情。借助于Spring,您可以发现很多额外的手段,其中最大的一处是在持久性方面。下面给出一个Hibernate数据访问对象中的方法:public List getReservations( ) { return getHibernateTemplate( ).find("from Reservation");}} 注意您没有看... 阅读全文
posted @ 2007-10-27 17:59 hibernate3例子 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 深入剖析JSP和Servlet对中文的处理世界上的各地区都有本地的语言。地区差异直接导致了语言环境的差异。在开发一个国际化程序的过程中,处理语言问题就显得很重要了。 这是一个世界范围内都存在的问题,所以,Java提供了世界性的解决方法。本文描述的方法是用于处理中文的,但是,推而广之,对于处理世界上其它国家和地区的语言同样适用。 汉字是双字节的。所谓双字节是指一个双字要占用两个BYTE的位置(即16位),分别称为高位和低位。中国规定的汉字编码为GB2312,这是强制性的,目前几乎所有的能处理中文的应用程序都支持GB2312。GB2312包括了一二级汉字和9区符号,高位从0xa1到0xfe,低位也 阅读全文
posted @ 2007-10-27 17:57 hibernate3例子 阅读(107) 评论(0) 推荐(0) 编辑
摘要: Web2.0 编程思想:16条法则1、在你开始之前,先定一个简单的目标。无论你是一个Web 2.0应用的创建者还是用户,请清晰的构思你的目标。就像“我需要保存一个书签”或者“我准备帮助人们创建可编辑的、共享的页面”这样的目标,让你保持最基础的需求。很多Web 2.0应用的最初吸引之处就是它的简单,避免并隐藏了那些多余的复杂性。站在创建者的立场,可以想象Google的几乎没有内容的主页,还有del.icio.us的简单的线条。从最终用户的角度来看,与之齐名的就是Diggdot.us所提供的初始化页面。你能够并且希望加入更多功能,但是先做好最开始的。在一个时候只做一个特性,完成一个目标。这听起来很 阅读全文
posted @ 2007-10-27 17:55 hibernate3例子 阅读(115) 评论(0) 推荐(0) 编辑
摘要: JSF与Struts的异同 Struts和JSF/Tapestry都属于表现层框架,这两种分属不同性质的框架,后者是一种事件驱动型的组件模型,而Struts只是单纯的MVC模式框架,老外总是急吼吼说事件驱动型就比MVC模式框架好,何以见得,我们下面进行详细分析比较一下到底是怎么回事? 首先事件是指从客户端页面(浏览器)由用户操作触发的事件,Struts使用Action来接受浏览器表单提交的事件,这里使用了Command模式,每个继承Action的子类都必须实现一个方法execute。 在Struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说: 阅读全文
posted @ 2007-10-27 17:48 hibernate3例子 阅读(243) 评论(0) 推荐(0) 编辑
摘要: Struts 使用要点(概述,Spring与Struts的整合,输入校验与消息显示)1.概述 Struts大家都很熟悉,不再详细介绍,另请请参阅 1. Pragmatic Struts:SpringSide推荐的最新最Pragmatic用法。 2. SpringSide的Struts封装,SpringSide封装的Struts的CRUD Action基类,默认拥有CRUD的方法,大家可以自行扩展,或者这参考其思路重新封装。 1.1 参考书籍《Jakarta Struts Cookbook》2005 O'Reilly,在铁手的博客上有部分中文翻译。 2. Spring与Struts的整合 阅读全文
posted @ 2007-10-27 17:47 hibernate3例子 阅读(140) 评论(0) 推荐(0) 编辑
摘要: Struts2与Struts1的对比Action 类: • Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。 • Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。 线程模式: • Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制 阅读全文
posted @ 2007-10-27 17:45 hibernate3例子 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 结合struts和hibernate谈J2EE架构的数据表示在 struts+ hibernate 这种结构中,是不应该把Hibernate产生的PO直接传递给JSP的,不管他是Iterator,还是List,这是一个设计错误。 我来谈谈在J2EE架构中各层的数据表示方法: Web层的数据表示是FormBean,数据来源于HTML Form POST 业务层的数据表示是VO 持久层的数据表示是PO,其数据来源于数据库,持久层的数据表示例如CMP 在一个规范的J2EE架构中,不同层的数据表示应该被限制在层内,而不应该扩散到其它层,这样可以降低层间的耦合性,提高J2EE架构整体的可维护性和可扩展性 阅读全文
posted @ 2007-10-27 17:41 hibernate3例子 阅读(66) 评论(0) 推荐(0) 编辑
摘要: JAVA学习之路:不走弯路,就是捷径 0.引言 在ChinaITLAB导师制辅导中,笔者发现问得最多的问题莫过于"如何学习编程?JAVA该如何学习?"。类似的问题回答多了,难免会感觉厌烦,就萌生了写下本文的想法。到时候再有人问起类似的问题,我可以告诉他(她),请你去看看《JAVA学习之路》。拜读过台湾蔡学镛先生的《JAVA夜未眠》,有些文章如《JAVA学习之道》等让我们确实有共鸣,本文题目也由此而来。 软件开发之路是充满荆棘与挑战之路,也是充满希望之路。JAVA学习也是如此,没有捷径可走。梦想像《天龙八部》中虚竹一样被无崖子醍醐灌顶而轻松获得一甲子功力,是很不现实的。每天仰 阅读全文
posted @ 2007-10-27 01:47 hibernate3例子 阅读(143) 评论(0) 推荐(0) 编辑
摘要: Struts 应用转移到 Struts 2 二向 Struts2 迁移 在Struts2中,可选的实现方式有很多,可以像Struts那样每个需求用例对应一个action,也可以用一个action对应所有需求用例。但在我们的例子中,使用的方法是我认为最佳的解决方案 - 在一个action类中实现整套CRUD功能。 也许你人为把list需求用例也同样地整合到同一个action类里会比较好,而我认为把list的功能分到另外一个action中,会减少容易产生的混淆,因为list用例中并不需要Blog这个类作为属性,而在其他用例中则需要。对于 Struts2的例子, 它的UML模型展示如下:每个用例在a 阅读全文
posted @ 2007-10-27 01:45 hibernate3例子 阅读(159) 评论(0) 推荐(0) 编辑
摘要: Struts 应用转移到 Struts 2 一 有很多人都很熟悉 Struts, 无论是从项目中直接获得的实战经验还是从书中了解到的。我们这一系列文章,将通过一个由 Stuts 转移到 Struts2 简单的例子向大家展现Struts2的所有特征。 在我们开始这个例子之前,你需要去知道一点 Struts2的背景知识。 在第一部分的文章中,我们将介绍Struts2与Struts的核心框架的不同点,以助于更好地了解其他方面的整合。第二部分中,我们将深入探讨 actions 的差别, action相关的框架特征,和action配置。在最后一部分中,我们将会讲述 user interface,我们也会 阅读全文
posted @ 2007-10-27 01:25 hibernate3例子 阅读(163) 评论(0) 推荐(0) 编辑
摘要: struts+hibernate项目debug总结javax.servlet.ServletException: Cannot retrieve mapping for action /companyNews struts-config.xml中没有写相关companyNews的action. ============================================在myeclipse增加一个jar包时候,先打开项目properties,选择java build path --> libraries -->add external JARs 选择到需要的jar包,加 阅读全文
posted @ 2007-10-27 01:17 hibernate3例子 阅读(278) 评论(0) 推荐(0) 编辑
摘要: JSP生成图片验证码1。建立一个JSP页面(image.jsp),把下面的代码全部复制到image.jsp下。<%@pagecontentType="image/jpeg"import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"%><%!ColorgetRandColor(intfc,intbc)...{//给定范围获得随机颜色Randomrandom=newRandom();if(fc>255)fc=255;if(bc>255)bc=255;intr= 阅读全文
posted @ 2007-10-27 01:15 hibernate3例子 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 网页常用小技巧1.oncontextmenu="window.event.returnValue=false"将彻底屏蔽鼠标右键 <tableborderoncontextmenu=return(false)><td>no</table>可用于Table 2.<bodyonselectstart="returnfalse">取消选取、防止复制 3.onpaste="returnfalse"不准粘贴 4.oncopy="returnfalse;"oncut=" 阅读全文
posted @ 2007-10-27 01:13 hibernate3例子 阅读(117) 评论(0) 推荐(0) 编辑