public static void insertKeys(Object obj, DBInfo info, Connection conn) throws Exception { PreparedStatement pstmt = null; try { StringBuffer sql = new StringBuffer(); sql.append("insert into " + info.getTable() + "("); int i = 0; for (DBField f : info.getAllKeys()) { sql.append(f.getDBName()); if (i < (info.getAllKeys().size() - 1)) { sql.append(","); } i++; } sql.append(")" + " values("); i = 0; for (; i < info.getAllKeys().size(); i++) { sql.append("?"); if (i < (info.getAllKeys().size() - 1)) { sql.append(","); } } sql.append(")"); pstmt = conn.prepareStatement(sql.toString()); i = 0; for (DBField f : info.getAllKeys()) { DBHelper.setPreparedStatement(obj, pstmt, (i + 1), f); i++; } pstmt.execute(); } catch (Exception e) { throw e; } finally { DBUtil.closePreparedStatement(pstmt); } }