public static void insert(Object obj, DBInfo info, Connection conn) throws Exception { for (DBField f : info.getAutoKeys()) { long id = DBHelper.getAutoId(obj, info, f, conn); ObjectHelper.setAutoObjectField(obj, f, id); } PreparedStatement pstmt = null; try { String sql = "insert into " + info.getTable(); sql += "("; int i = 0; for (DBField f : info.getAllFields()) { sql += f.getDBName(); if (i < (info.getAllFields().size() - 1)) { sql += ","; } i++; } sql += ")"; sql += " values("; i = 0; for (; i < info.getAllFields().size(); i++) { sql += "?"; if (i < (info.getAllFields().size() - 1)) { sql += ","; } } sql += ")"; pstmt = conn.prepareStatement(sql); i = 0; for (DBField f : info.getAllFields()) { DBHelper.setPreparedStatement(obj, pstmt, (i + 1), f); i++; } pstmt.execute(); } catch (Exception e) { throw e; } finally { DBUtil.closePreparedStatement(pstmt); } }