javax.jcr.query.Query.bindValue()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(11.4k)|赞(0)|评价(0)|浏览(242)

本文整理了Java中javax.jcr.query.Query.bindValue方法的一些代码示例,展示了Query.bindValue的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query.bindValue方法的具体详情如下:
包路径:javax.jcr.query.Query
类名称:Query
方法名:bindValue

Query.bindValue介绍

[英]Binds the given value to the variable named varName.
[中]将给定的value绑定到名为varName的变量。

代码示例

代码示例来源:origin: apache/jackrabbit

/** {@inheritDoc} */
public void bindValue(String varName, Value value)
    throws RepositoryException, RemoteException {
  query.bindValue(varName, value);
}

代码示例来源:origin: net.adamcin.oakpal/oakpal-core

@Override
public void bindValue(String varName, Value value) throws IllegalArgumentException, RepositoryException {
  delegate.bindValue(varName, value);
}

代码示例来源:origin: apache/jackrabbit

/**
 * Binds the given <code>value</code> to the variable named
 * <code>var</code>.
 *
 * @param q     the query
 * @param var   name of variable in query
 * @param value value to bind
 * @throws IllegalArgumentException if <code>var</code> is not a valid
 *                                  variable in this query.
 * @throws RepositoryException      if an error occurs.
 */
protected void bindVariableValue(Query q, String var, Value value)
    throws RepositoryException {
  q.bindValue(var, value);
}

代码示例来源:origin: stackoverflow.com

Session session = ...
String expression = "SELECT * FROM ...";  // as above
String pluginId = ...
String platform = ...
String version = ...
QueryManager queryMgr = session.getWorkspace().getQueryManager();
Query query = queryMgr.createQuery(expression,Query.JCR_SQL2);
query.bindValue("pluginId",pluginId);
query.bindValue("platform",platform);
query.bindValue("version",version);
QueryResult result = query.execute();

代码示例来源:origin: org.onehippo.cms7/hippo-repository-engine

public void bindValue(String varName, Value value) throws IllegalArgumentException, RepositoryException {
  if (query.getStatement().contains(MAGIC_NAMED_START)) {
    if(arguments == null)
      arguments = new HashMap<String, Value>();
    arguments.put(varName, value);
  } else {
    query.bindValue(varName, value);
  }
}

代码示例来源:origin: brix-cms/brix-cms

public void execute() throws Exception {
    getDelegate().bindValue(varName, value);
  }
});

代码示例来源:origin: brix-cms/brix-cms

public void bindValue(String varName, Value value) throws IllegalArgumentException,
    RepositoryException {
  getDelegate().bindValue(varName, value);
}

代码示例来源:origin: com.btmatthews.atlas/atlas-jcr

private void bindValue(final Query query,
            final ValueFactory valueFactory,
            final String name,
            final Object value)
    throws RepositoryException {
  if (value instanceof String) {
    query.bindValue(name, valueFactory.createValue((String) value));
  } else {
    throw new RepositoryAccessException(MessageFormat.format(UNSUPPORTED_PARAMETER_TYPE, name, value.getClass().getSimpleName()));
  }
}

代码示例来源:origin: ModeShape/modeshape

private void bindExtraVariables( UriInfo uriInfo,
                   ValueFactory valueFactory,
                   Query query ) throws RepositoryException {
    if (uriInfo == null) {
      return;
    }
    // Extract the query parameters and bind as variables ...
    for (Map.Entry<String, List<String>> entry : uriInfo.getQueryParameters().entrySet()) {
      String variableName = entry.getKey();
      List<String> variableValues = entry.getValue();
      if (variableValues == null || variableValues.isEmpty() || SKIP_QUERY_PARAMETERS.contains(variableName)) {
        continue;
      }

      // Grab the first non-null value ...
      Iterator<String> valuesIterator = variableValues.iterator();
      String variableValue = null;
      while (valuesIterator.hasNext() && variableValue == null) {
        variableValue = valuesIterator.next();
      }
      if (variableValue == null) {
        continue;
      }
      // Bind the variable value to the variable name ...
      query.bindValue(variableName, valueFactory.createValue(variableValue));
    }
  }
}

代码示例来源:origin: com.thinkbiganalytics.kylo/kylo-metadata-modeshape

public static QueryResult query(Session session, String queryExpression, Map<String, String> bindParams) throws RepositoryException {
  QueryResult results = null;
  log.debug("JCR-SQL2 query: {} ",queryExpression);
  Query query = session.getWorkspace().getQueryManager().createQuery(queryExpression, "JCR-SQL2");
  if (bindParams != null && !bindParams.isEmpty()) {
    Iterator e = bindParams.entrySet().iterator();
    while (e.hasNext()) {
      Map.Entry entry = (Map.Entry) e.next();
      String key = (String) entry.getKey();
      Value value = session.getValueFactory().createValue((String) entry.getValue());
      query.bindValue(key, value);
    }
  }
  results = query.execute();
  return results;
}

代码示例来源:origin: org.apache.sling/org.apache.sling.launchpad.test-services

@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)
    throws ServletException, IOException {
  response.setContentType("text/plain");
  
  String queryText = request.getParameter("q");
  if ( queryText == null || queryText.isEmpty() ) {
    response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
    response.getWriter().write("Missing mandatory 'q' parameter");
    return;
  }
  Session session = request.getResourceResolver().adaptTo(Session.class);
  
  try {
    Query query = session.getWorkspace().getQueryManager().createQuery("SELECT * FROM [nt:base] AS s WHERE CONTAINS(s.*, $queryText)", Query.JCR_SQL2);
    query.bindValue("queryText", session.getValueFactory().createValue(queryText));
    QueryResult result  = query.execute();
    NodeIterator iterator = result.getNodes();
    while( iterator.hasNext() ) {
      response.getWriter().println(iterator.nextNode().getPath());
    }
  } catch (RepositoryException e) {
    throw new ServletException(e);
  }
  
}

代码示例来源:origin: apache/jackrabbit-oak

private boolean performQuery(@NotNull final TestContext ec) throws RepositoryException {
  QueryManager qm = ec.session.getWorkspace().getQueryManager();
  ValueFactory vf = ec.session.getValueFactory();
  Query q = qm.createQuery("SELECT * FROM [nt:base] WHERE [title] = $title", Query.JCR_SQL2);
  q.bindValue("title", vf.createValue(ec.title));
  LOG.trace("statement: {} - title: {}", q.getStatement(), ec.title);        
  RowIterator rows = q.execute().getRows();
  if (rows.hasNext()) {
    rows.nextRow().getPath();
    return true;
  } else {
    return false;
  }
}

代码示例来源:origin: apache/jackrabbit-oak

private void run0() throws RepositoryException {
    session.refresh(false);
    QueryManager qm = session.getWorkspace().getQueryManager();
    Query q = qm.createQuery("select * from [nt:base] where [" + indexedPropName + "] = $status " +
        "option(index tag fooIndex)", Query.JCR_SQL2);
    q.bindValue("status", session.getValueFactory().createValue(randomStatus()));
    QueryResult result = q.execute();
    //With property index at time traversing index wins (somehow reporting lower cost)
    //and that leads to warning. So limit the iterator size
    resultSize += Iterators.size(Iterators.limit(result.getNodes(), 500));
  }
}

代码示例来源:origin: org.apache.jackrabbit/jackrabbit-spi2jcr

/**
 * {@inheritDoc}
 */
public QueryInfo executeQuery(SessionInfo sessionInfo, String statement, String language, Map<String, String> namespaces, long limit, long offset, Map<String, QValue> values) throws RepositoryException {
  SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
  Query query = createQuery(sInfo.getSession(), statement,
      language, namespaces);
  if (limit != -1) {
    query.setLimit(limit);
  }
  if (offset != -1) {
    query.setOffset(offset);
  }
  if (values != null && !values.isEmpty()) {
    for (Map.Entry<String, QValue> entry : values.entrySet()) {
      Value value = ValueFormat.getJCRValue(entry.getValue(), sInfo.getNamePathResolver(), sInfo.getSession().getValueFactory());
      query.bindValue(entry.getKey(), value);
    }
  }
  return new QueryInfoImpl(query.execute(), idFactory,
      sInfo.getNamePathResolver(), getQValueFactory());
}

代码示例来源:origin: apache/jackrabbit

/**
 * {@inheritDoc}
 */
public QueryInfo executeQuery(SessionInfo sessionInfo, String statement, String language, Map<String, String> namespaces, long limit, long offset, Map<String, QValue> values) throws RepositoryException {
  SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
  Query query = createQuery(sInfo.getSession(), statement,
      language, namespaces);
  if (limit != -1) {
    query.setLimit(limit);
  }
  if (offset != -1) {
    query.setOffset(offset);
  }
  if (values != null && !values.isEmpty()) {
    for (Map.Entry<String, QValue> entry : values.entrySet()) {
      Value value = ValueFormat.getJCRValue(entry.getValue(), sInfo.getNamePathResolver(), sInfo.getSession().getValueFactory());
      query.bindValue(entry.getKey(), value);
    }
  }
  return new QueryInfoImpl(query.execute(), idFactory,
      sInfo.getNamePathResolver(), getQValueFactory());
}

代码示例来源:origin: apache/archiva

@Override
public List<ArtifactMetadata> getArtifactsByChecksum( String repositoryId, String checksum )
  throws MetadataRepositoryException
{
  List<ArtifactMetadata> artifacts;
  String q = getArtifactQuery( repositoryId ) + " AND ([sha1] = $checksum OR [md5] = $checksum)";
  try
  {
    Query query = getJcrSession().getWorkspace().getQueryManager().createQuery( q, Query.JCR_SQL2 );
    ValueFactory valueFactory = getJcrSession().getValueFactory();
    query.bindValue( "checksum", valueFactory.createValue( checksum ) );
    QueryResult result = query.execute();
    artifacts = new ArrayList<>();
    for ( Node n : JcrUtils.getNodes( result ) )
    {
      artifacts.add( getArtifactFromNode( repositoryId, n ) );
    }
  }
  catch ( RepositoryException e )
  {
    throw new MetadataRepositoryException( e.getMessage(), e );
  }
  return artifacts;
}

代码示例来源:origin: apache/jackrabbit-oak

private static List<String> queryResult(Session session, String indexedPropName, String value) throws RepositoryException{
    session.refresh(false);
    QueryManager qm = session.getWorkspace().getQueryManager();
    Query q = qm.createQuery("select * from [nt:base] where [" + indexedPropName + "] = $value", Query.JCR_SQL2);
    q.bindValue("value", session.getValueFactory().createValue(value));
    QueryResult result = q.execute();
    List<String> paths = Lists.newArrayList();
    for (Row r : JcrUtils.getRows(result)){
      paths.add(r.getPath());
    }
    return paths;
  }
}

代码示例来源:origin: apache/jackrabbit

public void testFulltextBindVariableSQL() throws Exception {
  Node foo = testRootNode.addNode("foo");
  foo.setProperty("mytext", new String[]{"the quick brown fox jumps over the lazy dog."});
  
  testRootNode.save();
  
  String sql = "SELECT * FROM [nt:unstructured]"
    + " WHERE ISCHILDNODE([" + testRoot + "])"
    + " AND CONTAINS(mytext, $searchExpression)";
  Query q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2);
  assertEquals("Expected exactly 1 bind variable", 1, q.getBindVariableNames().length);
  assertEquals("searchExpression", q.getBindVariableNames()[0]);
  q.bindValue("searchExpression", superuser.getValueFactory().createValue("fox"));
  QueryResult result = q.execute();
  checkResult(result, 1);
}

代码示例来源:origin: apache/jackrabbit-oak

@Test
public void noLiterals() throws RepositoryException {
  Session session = getAdminSession();
  ValueFactory vf = session.getValueFactory();
  QueryManager qm = session.getWorkspace().getQueryManager();
  
  // insecure
  try {
    Query q = qm.createQuery(
        "select text from [nt:base] where password = 'x'", 
        Query.JCR_SQL2 + "-noLiterals");
    q.execute();
    fail();
  } catch (InvalidQueryException e) {
    assertTrue(e.toString(), e.toString().indexOf(
        "literals of this type not allowed") > 0);
  }
  // secure
  Query q = qm.createQuery(
      "select text from [nt:base] where password = $p", 
      Query.JCR_SQL2 + "-noLiterals");
  q.bindValue("p", vf.createValue("x"));
  q.execute();
}

代码示例来源:origin: ModeShape/modeshape

@FixFor( "MODE-1840" )
@Test
public void shouldBeAbleToCreateAndExecuteJcrSql2QueryWithBindVariableInsideContains() throws RepositoryException {
  String sql = "select [jcr:path] from [nt:unstructured] as n where contains(n.something, $expression)";
  Query query = session.getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2);
  query.bindValue("expression", session.getValueFactory().createValue("cat wearing"));
  QueryResult result = query.execute();
  validateQuery().rowCount(1).hasColumns("jcr:path").hasNodesAtPaths("/Other/NodeA[2]").validate(query, result);
}

相关文章