生成编号规则问题! 急。。谢谢
单号规则为“YSWT-ZX-001”开始,最后三位为流水号 
 作为一个表的PK
------解决方案--------------------insert into tableX(pk, f1, f2) values( 'YSWT-ZX- '||pk_sequence.nextval, f1value, f2value)?
------解决方案--------------------很简单啊   设2个字段一个字段存储固定的YSWT-ZX- 另外一个存储流水号 在流水号字段上+一个序列器让它自加。然后用这2个字段联合作主键
------解决方案--------------------zqrqq(zqrain(结帖是一种美德)) 用的是Oracle的序列来增长滴~~MS应该可以. 
 要不就是先截字符串,取MAX,+1 ?
------解决方案--------------------给你一个简单的DEMO:   
 public static String getNum() 
 	{ 
 	DetachedCriteria decriteria = DetachedCriteria.forClass(Book.class); 
 	decriteria.addOrder(Order.desc( "booknum ")); 
 	List list = CurrencyDao.query(decriteria,0,1); 
 ************************************************************************************ 
 上面的代码不用管他,是连接数据库BOOK表并取出第一条记录. 
 ************************************************************************************ 
 	String s = ((Book)list.get(0)).getBooknum();//取出编号 
 	String es = s.substring(8);//从这个编号的第8位开始,因为前7位是:YSWT-ZX- 
 	int iNum = Integer.parseInt(es)+1; 
 	if(iNum <10){ 
 	    es =  "00 "+iNum; 
 	}else{ 
 		if(iNum <100){ 
 			     es =  "0 " + iNum; 
 			  }else{ 
 				es = Integer.toString(iNum); 
 			       } 
 			} 
 		} 
 		String string =  "YSWT-ZX- "+es; 
 		return string; 
 	}   
 ************************************************************************************ 
 第一条记录是你固定的YSWT-ZX-001,因此你要加个判断取出编码是不是空,如果空就加YSWT-ZX-001,否则用以上代码,给你注释了,你自己在看一下!