@Override
	public void save(T t) throws Exception {
		Class<?> clazz = t.getClass();
		//获得表名
		String tableName = getTableName(clazz);
		//获得字段
		StringBuilder fieldNames = new StringBuilder();		//字段名
		List<Object> fieldValues = new ArrayList<Object>();	//字段值
		StringBuilder placeholders = new StringBuilder();	//占位符
		Field[] fields = clazz.getDeclaredFields();
		for (Field field : fields) {
			PropertyDescriptor pd = new PropertyDescriptor(field.getName(),t.getClass());
			if (field.isAnnotationPresent(Id.class)) {
				fieldNames.append(field.getAnnotation(Id.class).value()).append(",");
				fieldValues.add(pd.getReadMethod().invoke(t));
			} else if(field.isAnnotationPresent(Column.class)) {
				fieldNames.append(field.getAnnotation(Column.class).value()).append(",");
				fieldValues.add(pd.getReadMethod().invoke(t));
			}
			placeholders.append("?").append(",");
		}
		//删除最后一个逗号
		fieldNames.deleteCharAt(fieldNames.length()-1);
		placeholders.deleteCharAt(placeholders.length()-1);
		
		//拼接sql
		StringBuilder sql = new StringBuilder("");
		sql.append("insert into ").append(tableName)
		   .append(" (").append(fieldNames.toString())
		   .append(") values (").append(placeholders).append(")") ;
		PreparedStatement ps = JdbcDaoHelper.getConnection().prepareStatement(sql.toString());
		//设置SQL参数占位符的值
		setParameter(fieldValues, ps, false);
		//执行SQL
		ps.execute();
		JdbcDaoHelper.release(ps, null);
		
		System.out.println(sql + "\n" + clazz.getSimpleName() + "添加成功!");
	}