How Do I: Use a "WHERE... LIKE" Clause in a Database Control?

Curly braces "{}" within literals (strings within quotes) are ignored. This means statements like the following will not work as you might expect:

/**
 * @jws:sql statement::
 *     SELECT name
 *     FROM employees
 *     WHERE content LIKE '%{partialName}%'
 * ::
 */
public String[] partialNameSearch(String partialName);

Since the curly braces are ignored inside the literal string, the expected substitution of the partialName Java String into the SELECT statement does not occur. To avoid this problem, pre-format the match string in the JWS file before invoking the Database control method, as shown below:

String partialNameToMatch = "%" + matchString + "%"
String [] names = myDBControl.partialNameSeach(partialNameToMatch);

For more information about parameter substitution in Database control methods, see Parameter Substitution in @jws:sql Statements.

Related Topics

Database Control: Using a Database from Your Web Service