这里要注意一个这样的问题如果你的日期作为主关键字而且又带有中文字段时一定要转码,不然你怎么操作都是进不了数据库:
DateFormat dateFormat=DateFormat .getDateINstance(DateFormate.Long,Local.CHINA);
  Date shijian=new Date(dateFormat.parse(参数).getTime))

解决方案 »

  1.   

    个人几点意见:
    1. serviceLocator = TSSServiceLocator.getServiceLocator(TSS_APP);
       你完全可以提炼出来
    2.你的这个程序完全还可以简单点,而且在你的public void updateVocationConfigList(ArrayList list)中的参数对象其实是错误的,应该是:
       public void updateVacationConfigList(VocationConfigListVO vo) throws ....{}
    你想想,由于你是更新数据,所以只要对应的找到关键字段,而你确实以一个ArrayList去循环?呵呵,最后的改写应该是这样:
      public void updateVacationConfigList(CWorkDatePK pk) throws TSSAppException  {
      try{
          //引用接口
          serviceLocator = TSSServiceLocator.getServiceLocator(TSS_APP);
          CWorkDateHome home = (CWorkDateHome) serviceLocator.
              getLocalHome("com/paic/tss/pc/vocationConfig/persistence/cmp/CWorkDate");
          //
         CWorkDatePK  pk=new CWorkDatePK(vo.getXXX);
         CWorkDateLocal local=home.finderByPrimary(pk);
         local.setWorkDateFlag(vo.getFlag());
      }
      catch(Exception e){
      throw new Exception(".....");
      return null;
      }
    }
      

  2.   

    那个ArrayList 中放的其实就是VocationConfigListVO 对象,结构是这个样子(ArrayList) list 
                 VocationConfigListVO(WORK_DATE,WORK_DATE_FLAG)
                 VocationConfigListVO('2003-08-10',0)
                 VocationConfigListVO('2003-08-11',0)
                 VocationConfigListVO('2003-08-12',0)
                 ....我的操作是要把WORK_DATE_FLAG循环update 为一
    你看我的输出就应该看出来:主键WORK_DATE是找到了的
    Message : list.get:0
    Message : 2004-01-16  null  1
    Message : 2004-01-16
    Message : list.get:1
    Message : 2004-01-17  null  1
    Message : 2004-01-17
    Message : list.get:2
    Message : 2004-01-18  null  1
    Message : 2004-01-18
    Message : list.get:3
    Message : 2004-01-19  null  1
    Message : 2004-01-19