public <T> T addVO(T t) throws BasException {
		int result = -1;
		ResultSet idRs = null;
		try {
			Map<String, Object> updateProps = JdbcUtil.createInsertProps(t);
			con = connMgr.getConnection("");
			log.debug("Thread No[" + Thread.currentThread().getId() + "]," + "SQL Connection[ " + con + " ], Where[addVO]");
			preStmt = con.prepareStatement(JdbcUtil.createSqlByProp(t.getClass(), updateProps, null, BasConstants.SQL_INSERT, null, 0, null));
			JdbcUtil.supplyQuestionMark(t.getClass(), preStmt, updateProps, null, BasConstants.SQL_INSERT);
			result = preStmt.executeUpdate();
			if (result == 0) {
				log.info(MessageUtil.getBasText("jdbc-addVO-addfail", t.getClass().getSimpleName()));
			} else {
				idRs = preStmt.getGeneratedKeys();
				while (idRs.next()) {
					JdbcUtil.supplyBackId(t, idRs.getInt(1));
				}
			}
		} catch (Exception e) {
			log.error(e.getMessage(), e);
			throw new BasException(BasErrCode.E10001, t.getClass().getSimpleName());
		} finally {
			close(idRs);
		}
		return t;
	}