예제 #1
0
  /**
   * 在更新数据库值时,可能需要的判断是否改变值相同 其内部不一定是对象相同的情况下,有可能相对于数据库值是相同的
   *
   * @param odr
   * @return
   */
  public boolean checkRowEquals4DB(DataRow odr) {
    if (odr == null) return false;

    for (DataColumn dc : this.belongToDT.getColumns()) {
      Object thisv = this.getValue(dc.getName());
      Object ov = odr.getValue(dc.getName());
      if (thisv == null) {
        if (ov != null) return false;
      } else {
        if (thisv.equals(ov)) continue;

        if (ov == null) return false;

        if (thisv instanceof java.util.Date && ov instanceof java.util.Date) {
          // ((java.util.Date)thisv).
          // 时间存入数据库之后,纳秒内容会被删除,所以只需要秒相同,就认为相同
          long t1 = ((java.util.Date) thisv).getTime() / 1000;
          long t2 = ((java.util.Date) ov).getTime() / 1000;
          if (t1 != t2) return false;
        }
      }
    }

    return true;
  }
예제 #2
0
 public XmlData toXmlData() {
   XmlData xd = new XmlData();
   for (DataColumn dc : belongToDT.getColumns()) {
     String n = dc.getName();
     Object o = this.getValue(n);
     if (o != null) xd.setParamValue(n, o);
   }
   return xd;
 }
예제 #3
0
  public void fromXmlData(XmlData xd) {
    for (DataColumn dc : belongToDT.getColumns()) {
      String n = dc.getName();
      Object ov = xd.getParamValue(n);
      if (ov != null) { // 适应jdbc数据库访问要求
        if ((ov instanceof java.util.Date) && !(ov instanceof java.sql.Timestamp)) {
          ov = new java.sql.Timestamp(((java.util.Date) ov).getTime());
        }

        this.put(n, ov);
      }
    }
  }