public class SqlAttributesFilter extends Object implements Filter
Map
object, whose location is specified by the target
expression. If the query yields no result, then the resulting map will be empty.
The execution of the query is performed lazily; it does not occur until the first attempt
to access a value in the target. This defers the overhead of connection pool, network
and database query processing until a value is first required. This also means that the
parameters
expressions will not be evaluated until the map is first accessed.
PreparedStatement
Modifier and Type | Class and Description |
---|---|
static class |
SqlAttributesFilter.Heaplet
Creates and initializes a static attribute provider in a heap environment.
|
Constructor and Description |
---|
SqlAttributesFilter(DataSource dataSource,
LeftValueExpression<Map> target,
String preparedStatement)
Builds a new SqlAttributesFilter that will execute the given SQL statement on the given
DataSource ,
placing the results in a Map in the specified target. |
Modifier and Type | Method and Description |
---|---|
Promise<Response,NeverThrowsException> |
filter(Context context,
Request request,
Handler next)
Filters the request and/or response of an exchange.
|
List<Expression<?>> |
getParameters()
Returns the list of parameters to evaluate and include in the execution of the prepared statement.
|
public SqlAttributesFilter(DataSource dataSource, LeftValueExpression<Map> target, String preparedStatement)
DataSource
,
placing the results in a Map
in the specified target.dataSource
- JDBC data sourcetarget
- Expression that yields the target object that will contain the mapped resultspreparedStatement
- The parameterized SQL query to execute, with ? parameter placeholderspublic List<Expression<?>> getParameters()
public Promise<Response,NeverThrowsException> filter(Context context, Request request, Handler next)
Filter
next.handle(context, request)
.
This method may elect not to pass the request to the next filter or
handler, and instead handle the request itself. It can achieve this by
merely avoiding a call to next.handle(context, request)
and creating its own response object. The filter is also at liberty to
replace a response with another of its own by intercepting the response
returned by the next handler.
Copyright 2011-2017 ForgeRock AS.