我希望为表格中的记录生成两种格式的唯一代码。 喜欢以下方式
1)"Firstprefix"+"ddmmyyyy"+Sr.number e.g AD190620151
2)"secondprefix"+"ddmmyyyy"+Sr.number e.g AP190620151
如果插入另一条记录,它将是其中之一,但序列没有变化 例如AD190620152 AP190620152 这根据记录中的另一个字段生成如何做到这一点请给出mi回答。
我尝试了以下方式
@Override
public String createOrder(OrderMasterTbl order) {
getHibernateTemplate().saveOrUpdate(order);
Integer addId=order.getAdType().getId();
String id = null ;
if(addId.equals(1))
{
id="ap"+new SimpleDateFormat("ddmmyyyy").format(newDate())+order.getId();
}else{
id="dp"+new SimpleDateFormat("ddmmyyyy").
format(newDate())+order.getId();
}
System.out.print(id);
order.setOrderCode(id);
getHibernateTemplate().saveOrUpdate(order);
return id;
}
但是这样我就无法根据两种格式生成正确的序列号。
答案 0 :(得分:1)
您在此处未获得正确的序列号,因为SimpleDateFormat
使用了错误的格式,您指的是m
的月份,而应该是M
,请查看 SimpleDateFormat Documentation 以获取更多信息。
您的代码应该是这样的:
new SimpleDateFormat("ddMMyyyy").format(newDate())
修改强>
为了使代码在最后一个增量,您只需在类中使用ap
和dp
,并使用1
进行初始化,并在方法中增加它们根据您的if block
,您的代码应该是这样的:
@Override
public String createOrder(OrderMasterTbl order) {
getHibernateTemplate().saveOrUpdate(order);
Integer addId=order.getAdType().getId();
String id = null ;
if(addId.equals(1)){
id="ap"+ new SimpleDateFormat("ddMMyyyy").format(newDate())+ap;
ap++;
}else{
id="dp"+new SimpleDateFormat("ddMMyyyy").format(newDate())+dp;
dp++;
}
System.out.print(id);
order.setOrderCode(id);
getHibernateTemplate().saveOrUpdate(order);
return id;
}