摘要: 做Hibernate应用的开发,肯定会设计到pojo的映射文件的编写,当设计到大量的pojo时,维护映射文件变成了一件相当困难的事情,因为要保持pojo和映射文件的同步,很可能就会出错. 如果采用xdoclet那么就可以很方便的保持它们之间的同步,进一步提高工作效率. 这里举一个简单的使用xdoclet生成映射文件的例子: 首先需要使用的包:1.xdoclet-1.2.3.jar /xjavadoc.jar /xdoclet-hibernate-module-1.2.3.jar 2.ant相关的包首先,建立ant配置文件(一旦建立,之后就可以在项目中不用更改了)<?xmlversion= 阅读全文
posted @ 2007-04-03 16:25 lovingprince 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 二叉树Binary Tree二叉树的定义二叉树是一类非常重要的树形结构,它可以递归地定义如下:二叉树T是有限个结点的集合,它或者是空集,或者由一个根结点u以及分别称为左子树和右子树的两棵互不相交的二叉树u(1)和u(2)组成。若用n,n1和n2分别表示T,u(1)和u(2)的结点数,则有n=1+n1+n2 。u(1)和u(2)有时分别称为T的第一和第二子树。因此,二叉树的根可以有空的左子树或空的右子树,或者左、右子树均为空。二叉树有5种基本形态,如图1所示。图1 二叉树的5种基本形态(其中□表示空)在二叉树中,每个结点至多有两个儿子,并且有左、右之分。因此任一结点的儿子不外4种情况:没有儿子; 阅读全文
posted @ 2007-04-03 09:51 lovingprince 阅读(381) 评论(0) 推荐(1) 编辑
摘要: 有关动态bean的一些用法,涉及到的类如下: 1、DynaBean是一个接口,它的实现类有BasicDynaBean、LazyDynaBean、ResultSetIterator、WrapDyna&shy;Bean 2、DynaClass,也是接口,它的实现类有BasicDynaClass、WrapDynaClass等 3、DynaProperty,用来设置动态bean的属性 4、PropertyUtils,工具类,主要用来设置、取得属性值 等等,可以查阅commons-beanutils.jar 这里列举一个例子,讲述它的用法,代码如下: ①动态设置了三个属性id、name、emai 阅读全文
posted @ 2007-04-02 16:44 lovingprince 阅读(511) 评论(0) 推荐(0) 编辑
摘要: commons-lang包中对我们有用的类主要有:1.StringUtils 该类主要提供对字符串的操作,对null是安全的,主要提供了字符串查找,替换,分割,去空白,去掉非法字符等等操作2.ObjectUtils 主要是对null进行安全处理,可以设置为null时的默认返回值,比较相等时是调用对象的equals方法,因此需要对对象进行方法进行覆盖3.SystemUtils 主要获取一些系统属性,例如工作目录等等4.DateUtils/CalendarUtils 主要提供了对日期的操作,包括日期加减,日期格式化,日期比较,一定时间范围内日期的迭代等等5.StopWatch 提供秒表的计时,暂停 阅读全文
posted @ 2007-04-02 16:26 lovingprince 阅读(11540) 评论(0) 推荐(2) 编辑
摘要: 这里截获POST或GET请求提交的所有请求参数,并组成查询串返回/***//****该方法用于将request中参数取出组成查询串后返回**@paramrequest*HttpServletRequest*@returnString返回key1=value1&key2=value形式的查询串*/publicstaticStringgetQueryString(HttpServletRequestrequest)...{try...{booleanfirst=true;StringBufferstrbuf=newStringBuffer("");Enumeration 阅读全文
posted @ 2007-04-02 12:31 lovingprince 阅读(1121) 评论(0) 推荐(0) 编辑
摘要: 平时做JAVA总是会遇到强制转换的时候,一般单个对象强制转换很方便,例如Bb=null;A a=(A)b;但是, B[] b=null; A[] a=(A[])b却会导致异常发生,为了解决这个问题,我们不得不对数组中每个元素单独进行强制转换,for(int i=0;i<b.length;i++) a[i]=(A)b[i];如果只有这么两种类型进行转换也好,要是还有C类型到D类型等等很多其他类型怎么办? 鉴于这个原因,我写了一个通用的强制对数组进行转换的函数,对于上面这个转换只需要调用 A[] a=(A[])TestCast.cast(b,A.class) 就可以解决问题,很是方便;具体代 阅读全文
posted @ 2007-04-01 18:47 lovingprince 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 折半查找算法算法思想: 将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。 折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。但是,折半查找的先决条件是查找表中的数据元素必须有序。 算法步骤描述: step1 首先确定整个查找区间的中间位置 mid = ( left + right )/ 2 step2 用待查关键字值与中间位置的关键字值进行比较; 若相等,则查找成功 若大于,则在后(右)半个区域继续进行折半查找 若小 阅读全文
posted @ 2007-04-01 12:04 lovingprince 阅读(631) 评论(0) 推荐(0) 编辑
摘要: 排序算法来自 维客Jump to: navigation, search 排序算法 O(n²)或更坏 冒泡排序 插入排序 快速排序 选择排序 O(n3/2)或更好 二叉树排序 桶排序 ... 阅读全文
posted @ 2007-04-01 11:58 lovingprince 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 以前一直以为append比+快,今天上网查了资料才发现:这种说法是不全面的.正确的说法应该是: 1.在运行期做字符串连接,那么append 显然比+快很多2.在编译期就可以做连接的话,那么使用+要比append快.例子:String temp="nnnnnnn"+"jjjjjj"+"jjjjj";(1)StringBuffer t=new StringBuffer(); t.append("nnnnnnn").append("jjjjjj").append("jjjjjj") 阅读全文
posted @ 2007-03-30 19:43 lovingprince 阅读(234) 评论(0) 推荐(0) 编辑
摘要: ORACLE触发器其实是PL/SQL块,它类似于存储过程和函数,不过有一点不同的是,触发器是隐式调用的,并不能接收参数. ORACLE触发器有三种类型,分别是:DML触发器, 替代触发器和系统触发器. 下面对这三种类型一一进行讲述1.DML触发器 顾名思义,DML触发器是由DML语句触发的.例如数据库的INSERT/UPDATE/DELETE操作都可以触发该类型的触发器. 它们可以在这些语句之前或之后触发,或者在行级上触发(就是说对于每个受影响的行都触发一次)例如我们有一张表TABLE1 ,总共有三个字段ID,姓名,年龄 ,当我们在插入时希望ID可以自动生成,那么可以建立一个触发器CREATE 阅读全文
posted @ 2007-03-24 15:53 lovingprince 阅读(5877) 评论(0) 推荐(0) 编辑