/**
  * 执行Insert 之前,检查数据必填项是否填写完毕。
  *
  * @param jbo
  * @return
  */
 public boolean checkValid(JboIFace jbo) throws JxException {
   if (jbo == null) {
     return false;
   }
   Map<String, JxAttribute> jxattr = jbo.getJxAttributes();
   String jboname = jbo.getJboName();
   String keyName = jbo.getUidName();
   Map<String, Object> data = jbo.getData();
   for (Map.Entry<String, JxAttribute> entry : jxattr.entrySet()) {
     String key = entry.getKey();
     if ((keyName != null && key.equalsIgnoreCase(keyName))) {
       continue;
     }
     JxAttribute attr = entry.getValue();
     if (attr == null) {
       continue;
     } else if (attr.getDefaultValue() != null) {
       if (data.get(key) == null) {
         data.put(key, attr.getDefaultValue());
       }
     } else if (attr.isRequired() && key.indexOf(".") == -1) {
       if (null == data.get(key)) {
         LOG.debug("表名.字段名(" + jboname + "." + key + ")为必填项。");
         throw new JxException(
             "必须填写:"
                 + attr.getObjectName()
                 + " : "
                 + attr.getTitle()
                 + " : "
                 + attr.getAttributeName());
       }
     }
   }
   return true;
 }
 public int delete(Connection conn, JboIFace jbo) throws JxException {
   if (conn == null || jbo == null) {
     LOG.info("传入的参数为空。");
     return -1;
   }
   String tabname = jbo.getJboSet().getEntityname();
   String msql = "Delete from " + tabname + " where " + jbo.getUidName() + "=?";
   Object[] columns = new Object[] {jbo.getJxAttributes().get(jbo.getUidName())};
   JxLog jxlog = JxLogFactory.getJxLog(jbo.getJboSet().getAppname(), tabname);
   if (jxlog != null) {
     jxlog.info(jbo, "DELETE");
   }
   return execute(conn, msql, columns, new Object[] {jbo.getUidValue()});
 }