Пример #1
0
 private static long _InsertObject(POJO obj) {
   Map<String, Object> pojo_bean = obj.ListInsertableFields();
   String[] fields = pojo_bean.keySet().toArray(new String[pojo_bean.size()]);
   StringBuilder sql = new StringBuilder("INSERT INTO ");
   sql.append(obj.TableName());
   sql.append('(');
   for (int i = 0; i < fields.length; i++) {
     if (i > 0) sql.append(',');
     sql.append(fields[i]);
   }
   sql.append(") VALUES(");
   for (int i = 0; i < fields.length; i++) {
     if (i > 0) sql.append(',');
     sql.append('?');
   }
   sql.append(')');
   PreparedStatement ps = null;
   ResultSet rs = null;
   try {
     ps =
         QueryHelper.getConnection()
             .prepareStatement(sql.toString(), PreparedStatement.RETURN_GENERATED_KEYS);
     for (int i = 0; i < fields.length; i++) {
       ps.setObject(i + 1, pojo_bean.get(fields[i]));
     }
     ps.executeUpdate();
     rs = ps.getGeneratedKeys();
     return rs.next() ? rs.getLong(1) : -1;
   } catch (SQLException e) {
     throw new DBException(e);
   } finally {
     DbUtils.closeQuietly(rs);
     DbUtils.closeQuietly(ps);
     sql = null;
     fields = null;
     pojo_bean = null;
   }
 }