2009年11月3日

对于一些自动编号(自动增量)的字段,当删除数据后,新增加的数字总是紧接着,而不是连续的。
全部清空后,也不会从1开始。
你可以使用下面的方法。
SQL2000或SQL Server2005及以上版本
TRUNCATE TABLE [你的表]
ACCESS
清空表后,修复压缩一下数据库。

 

关于 TRUNCATE TABLE 语句

TRUNCATE TABLE 语句是一种快速、无日志记录的方法。TRUNCATE TABLE 与不含有 WHERE 子句的 DELETE 语句在功能上相同。但是,TRUNCATE TABLE 速度更快,并且使用更少的系统资源和事务日志资源。

TRUNCATE TABLE 语句可以在表中没有数据的时候让自动编号再次从一开始

posted @ 2009-11-03 09:34 Ryan 阅读(704) | 评论 (0)编辑 收藏

2008年6月7日

Oracle10的安装缺省包含了XDB,在启动数据库后,Oracle XDB的http服务将会自动占用了8080端口,跟已有的tomcat发生冲突,tomcat用8080端口习惯了,如果要改tomcat的端口就简单多了,但是怎么更改这个XDB的http服务默认端口呢?
在网上有很多方法,自己照着做了一下,记下来以便以后查询。
首先在windows的服务中打开监听以及oracle数据库服务;
然后打开windows下的msdos窗口,使用sys登录sqlplus:
sqlplus
sys/password as sysdba
SQL>call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),'/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',8081))
SQL>/
SQL>exec dbms_xdb.cfg_refresh

这样的话就把XDB的http服务端口改为8081了。
重启电脑或者在windows的服务中直接重启监听和oracle数据库服务。
问题解决!!
posted @ 2008-06-07 20:55 Ryan 阅读(281) | 评论 (0)编辑 收藏

2008年5月6日

转自http://developingnizi.54bk.com
getMethods

public Method[] getMethods()
                    throws SecurityException返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法。数组类返回从 Object 类继承的所有(公共)member 方法。返回数组中的元素没有排序,也没有任何特定的顺序。如果此 Class 对象表示没有公共成员方法的类或接口,或者表示一个基本类型或 void,则此方法返回长度为 0 的数组。

getDeclaredMethods
public Method[] getDeclaredMethods()
                            throws SecurityException返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。返回数组中的元素没有排序,也没有任何特定的顺序。如果该类或接口不声明任何方法,或者此 Class 对象表示一个基本类型、一个数组类或 void,则此方法返回一个长度为 0 的数组。类初始化方法 <clinit> 不包含在返回数组中。如果该类声明带有相同参数类型的多个公共成员方法,则它们都包含在返回的数组中。

posted @ 2008-05-06 08:26 Ryan 阅读(1649) | 评论 (0)编辑 收藏

2007年12月18日

        --来源:松迪科技(北京)有限公司
        有许多人学了很长时间的Java,但一直不明白hashCode方法的作用,我来解释一下吧。首先,想要明白hashCode的作用,你必须要先知道Java中的集合。
  总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢?这就是Object.equals方法了。但是,如果每增加一个元素就检查一次,那么当元素很多时,后添加到集合中的元素比较的次数就非常多了。也就是说,如果集合中现在已经有1000个元素,那么第1001个元素加入集合时,它就要调用1000次equals方法。这显然会大大降低效率。
       于是,Java采用了哈希表的原理。哈希(Hash)实际上是个人名,由于他提出一哈希算法的概念,所以就以他的名字命名了。哈希算法也称为散列算法,是将数据依特定算法直接指定到一个地址上。如果详细讲解哈希算法,那需要更多的文章篇幅,我在这里就不介绍了。初学者可以这样理解,hashCode方法实际上返回的就是对象存储的物理地址(实际可能并不是)。
        这样一来,当集合要添加新的元素时,先调用这个元素的hashCode方法,就一下子能定位到它应该放置的物理位置上。如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;如果这个位置上已经有元素了,就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址。所以这里存在一个冲突解决的问题。这样一来实际调用equals方法的次数就大大降低了,几乎只需要一两次。
      所以,Java对于eqauls方法和hashCode方法是这样规定的:
1、如果两个对象相同,那么它们的hashCode值一定要相同;
2、如果两个对象的hashCode相同,它们并不一定相同
    上面说的对象相同指的是用eqauls方法比较。
     你当然可以不按要求去做了,但你会发现,相同的对象可以出现在Set集合中。同时,增加新元素的效率会大大下降。

posted @ 2007-12-18 14:06 Ryan 阅读(1376) | 评论 (0)编辑 收藏
仅列出标题