public int update() throws SQLException {
		StringBuilder sb = new StringBuilder();
		if (commentLine != null) {
			sb.append("/* ").append(commentLine).append(" */");
		}
		sb.append("update " + TABLENAME + " set ");
		int i = 1;
		List<Object> list = new ArrayList<Object>();
		for (Fields hf : fieldValueMap.keySet()) {
			list.add(fieldValueMap.get(hf));
			sb.append(hf.getFieldName()).append("=?");
			if (i < fieldValueMap.size()) {
				sb.append(",");
			}
			i++;
		}
		if (whereMap.size() > 0) {
			StringBuilder sbWhere = new StringBuilder();
			for (String str : whereMap.keySet()) {
				sbWhere.append(str);
				Object o = whereMap.get(str);
				if (o != null)
					if (o instanceof Array) {
						getArrayObj(list, (Array) o);
					} else {
						list.add(o);
					}
			}
			sb.append(sbWhere.toString().replaceFirst(AND, " where "));
		}
		String sql = sb.toString();
		Object[] values = new Object[list.size()];
		list.toArray(values);
		if (this.isloggerOn) {
			StringBuilder s = new StringBuilder();
			for (Object o : values) {
				s.append(o).append(",");
			}
			logger.log("[UPDATE SQL][" + sql + "][" + s.toString().substring(0, s.length() - 1) + "]");
		}
		return jdao.executeUpdate(sql, list.toArray(values));
	}