@Override
  public Set<DomainCreatePermission> getDomainCreatePostCreateSysPermissions(
      SQLConnection connection, Resource accessorResource) {
    SQLStatement statement = null;

    try {
      statement =
          connection.prepareStatement(
              sqlStrings
                  .SQL_findInGrantDomainCreatePermissionPostCreateSys_withoutInheritance_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID);
      statement.setResourceId(1, accessorResource);
      SQLResult resultSet = statement.executeQuery();

      // collect the create permissions that this resource has to domains directly
      Set<DomainCreatePermission> domainCreatePermissions = new HashSet<>();
      while (resultSet.next()) {
        domainCreatePermissions.add(getDomainCreatePostCreateSysPermission(resultSet));
      }
      resultSet.close();

      return domainCreatePermissions;
    } catch (SQLException e) {
      throw new RuntimeException(e);
    } finally {
      closeStatement(statement);
    }
  }
コード例 #2
0
ファイル: Query.java プロジェクト: kringpin323/H2-Research
 @SuppressWarnings("unchecked")
 private <X> List<X> selectSimple(X x, boolean distinct) {
   SQLStatement stat = getSelectStatement(distinct);
   appendSQL(stat, x);
   appendFromWhere(stat);
   ResultSet rs = stat.executeQuery();
   List<X> result = New.arrayList();
   Statement s = null;
   try {
     s = rs.getStatement();
     while (rs.next()) {
       try {
         X value;
         Object o = rs.getObject(1);
         int convertHereIsProbablyWrong;
         if (Clob.class.isAssignableFrom(o.getClass())) {
           value = (X) ClassUtils.convert(o, String.class);
         } else {
           value = (X) o;
         }
         result.add(value);
       } catch (Exception e) {
         throw new RuntimeException(e);
       }
     }
   } catch (SQLException e) {
     throw new RuntimeException(e);
   } finally {
     JdbcUtils.closeSilently(rs);
     JdbcUtils.closeSilently(s);
   }
   return result;
 }
コード例 #3
0
ファイル: Query.java プロジェクト: kringpin323/H2-Research
 public long selectCount() {
   SQLStatement stat = getSelectStatement(false);
   stat.appendSQL("COUNT(*) ");
   appendFromWhere(stat);
   ResultSet rs = stat.executeQuery();
   Statement s = null;
   try {
     s = rs.getStatement();
     rs.next();
     long value = rs.getLong(1);
     return value;
   } catch (SQLException e) {
     throw new RuntimeException(e);
   } finally {
     JdbcUtils.closeSilently(rs);
     JdbcUtils.closeSilently(s);
   }
 }
コード例 #4
0
ファイル: Query.java プロジェクト: kringpin323/H2-Research
 private List<T> select(boolean distinct) {
   List<T> result = New.arrayList();
   TableDefinition<T> def = from.getAliasDefinition();
   SQLStatement stat = getSelectStatement(distinct);
   def.appendSelectList(stat);
   appendFromWhere(stat);
   ResultSet rs = stat.executeQuery();
   Statement s = null;
   try {
     s = rs.getStatement();
     while (rs.next()) {
       T item = from.newObject();
       from.getAliasDefinition().readRow(item, rs);
       result.add(item);
     }
   } catch (SQLException e) {
     throw new RuntimeException(e);
   } finally {
     JdbcUtils.closeSilently(rs);
     JdbcUtils.closeSilently(s);
   }
   return result;
 }
コード例 #5
0
ファイル: Query.java プロジェクト: kringpin323/H2-Research
 private <X> List<X> select(Class<X> clazz, X x, boolean distinct) {
   List<X> result = New.arrayList();
   TableDefinition<X> def = db.define(clazz);
   SQLStatement stat = getSelectStatement(distinct);
   def.appendSelectList(stat, this, x);
   appendFromWhere(stat);
   ResultSet rs = stat.executeQuery();
   Statement s = null;
   try {
     s = rs.getStatement();
     while (rs.next()) {
       X row = ClassUtils.newObject(clazz);
       def.readRow(row, rs);
       result.add(row);
     }
   } catch (SQLException e) {
     throw new RuntimeException(e);
   } finally {
     JdbcUtils.closeSilently(rs);
     JdbcUtils.closeSilently(s);
   }
   return result;
 }