sql = "SELECT phrase " +
" FROM phrases " +
" WHERE phrase LIKE $1";
PreparedStatement pstmt = conn.prepareStatement (sql);
// probably repeated, if more than one input:
pstmt.setString (1, "%" + input + "%");
ResultSet rs = pstmt.executeQuery ();
Подготовленный оператор проверяется на соответствие базе данных и быстрее для повторного вызова, поэтому, если у вас есть более одного ввода, он все равно должен быть быстрым, выполненным в цикле.
Конечно, вы можете загрузить все свои фразы в оперативную память, на карту.Медленно при подготовке, это может быть быстрее, если у вас несколько вызовов, а не один вход.Но базы данных часто достаточно эффективны для поиска.