static String fillContent4Dao(String packageName, String tablename, Connection conn) throws SQLException {
		String sql = "select * from " + tablename + " limit 1";
		String Tablename = Utils.upperFirstChar(Utils.delUnderline(tablename));
		ResultSet rs = conn.prepareStatement(sql).executeQuery();
		StringBuilder sb = new StringBuilder();

		if (packageName != null)
			sb.append("package ").append(packageName).append(";\n\n");

		sb.append("import java.io.Serializable;").append("\n");
		sb.append("import com.jdao.base.Table;").append("\n");
		sb.append("import com.jdao.base.Fields;").append("\n\n");
		sb.append("/**").append("\n");
		sb.append(" * @date " + Utils.dateFormat() + "  dao for table ").append(tablename).append("\n");
		sb.append(" */").append("\n");

		sb.append("public class " + Tablename + " extends Table<" + Tablename + "> implements Serializable{").append("\n");
		sb.append("\tprivate static final long serialVersionUID = 1L;").append("\n");
		sb.append("\tprivate final static String TABLENAME_ = \"" + tablename + "\";").append("\n");

		ResultSetMetaData meta = rs.getMetaData();
		StringBuilder sb4GetSet = new StringBuilder();
		StringBuilder sb4args = new StringBuilder();
		StringBuilder sb4FieldArgs = new StringBuilder();
		StringBuilder sb4Fields = new StringBuilder();
		for (int i = 1; i <= meta.getColumnCount(); i++) {
			String fileName = Utils.delUnderline(meta.getColumnName(i));
			int javaType = meta.getColumnType(i);
			if (!meta.isSigned(i) && (javaType == Types.INTEGER)) {
				javaType = Types.BIGINT;
			}
			String type = type2String(javaType) + " ";
			sb4Fields.append("\t/**").append(meta.getColumnLabel(i)).append("*/").append("\n");
			sb4Fields.append("\tpublic final static Fields ").append(fileName.toUpperCase() + " = ").append("new Fields(\"`" + meta.getColumnName(i) + "`\")").append(";").append("\n");

			sb4FieldArgs.append(fileName.toUpperCase());
			if (i < meta.getColumnCount())
				sb4FieldArgs.append(",");
			String initField = initField(type2String(javaType));
			if (!Utils.isContainsLowerCase(fileName)) {
				fileName = fileName.toLowerCase();
			}
			if (initField != null) {
				sb4args.append("\tprivate ").append(type).append("" + fileName + " = ").append(initField).append(";").append("\n");
			} else {
				sb4args.append("\tprivate ").append(type).append("" + fileName + "").append(";").append("\n");
			}
			sb4GetSet.append("\tpublic ").append(type).append("get").append(Utils.upperFirstChar(fileName)).append("(){").append("\n");
			sb4GetSet.append("\t\treturn this.").append(fileName).append(";").append("\n");
			sb4GetSet.append("\t}").append("\n\n");
			sb4GetSet.append("\tpublic void ").append("set").append(Utils.upperFirstChar(fileName)).append("(").append(type).append(fileName).append("){").append("\n");
			sb4GetSet.append("\t\tfieldValueMap.put(" + fileName.toUpperCase() + ", " + fileName + ");").append("\n");
			sb4GetSet.append("\t\t this.").append(fileName).append("=").append(fileName).append(";").append("\n");
			sb4GetSet.append("\t}").append("\n");
		}

		sb.append(sb4Fields.toString()).append("\n");
		sb.append(sb4args.toString()).append("\n");

		sb.append("\tpublic ").append(Tablename).append("(){").append("\n");
		sb.append("\t\tsuper(TABLENAME_," + Tablename + ".class);").append("\n");
		sb.append("\t\tsuper.setFields(" + sb4FieldArgs + ");").append("\n");
		sb.append("\t}").append("\n\n");

		sb.append("\tpublic ").append(Tablename).append("(String tableName4sharding){").append("\n");
		sb.append("\t\tsuper(tableName4sharding," + Tablename + ".class);").append("\n");
		sb.append("\t\tsuper.setFields(" + sb4FieldArgs + ");").append("\n");
		sb.append("\t}").append("\n\n");

		sb.append(sb4GetSet.toString());
		sb.append("}");
		return sb.toString();
	}