я встретил проблему, которую я не могу объяснить, используя Java/SQLite:Sqlite + Java, странное поведение с подготовленное заявление
String sql = "Select date, type FROM line ORDER BY ?";
PreparedStatement st = DB.getConnexion().prepareStatement(sql);
st.setString(1, sort);
ResultSet rs = st.executeQuery();
Этот фрагмент кода дает мне неправильный порядок (порядок по умолчанию) [и поверьте мне, я проверил и перепроверял, что параметр был хорошим]
String sql = "Select date, type FROM line ORDER BY " + sort;
PreparedStatement st = DB.getConnexion().prepareStatement(sql);
//st.setString(1, sort);
ResultSet rs = st.executeQuery();
И этот результат дает ожидаемый результат. Я немного в проигрыше здесь, это не имеет никакого смысла для меня. Я попытался перезапустить eeclipse, перестроить проект, проверить свой запрос непосредственно из браузера sqlite, проверить параметр и результаты в любом возможном месте, но похоже, что функция setString() sqlite неправильно атрибуты моего параметра, и это не даже сбой или ошибка.
У меня либо отсутствует что-то действительно глупое, либо здесь что-то не так.
Возможный дубликат [Использование подготовленного оператора и переменной bind Order By в Java с драйвером JDBC] (http://stackoverflow.com/questions/12430208/using-a-prepared-statement-and-variable-bind-order -by-in-java-with-jdbc-driver) – GurV