@The_XXI

Почему ничего не выводится при запросе в БД, если происходит поиск по значению из «русских» букв?

Я делаю запрос в БД по столбцу name, и если name состоит из англ. букв, то все выводится. Если же name состоит из рус. букв, то ничего не приходит:
60704d00b6b98612896442.jpeg
Несколько первых строк из бд:
60704bc3e4da7383511290.jpeg
Код запроса и вывода:
ResultSet resultSetManufacturerID = DBHandler.executeQuery("SELECT ID FROM manufacturer WHERE Name = '"+ManufacturerTitle+"'");
                String manufacturerID = null;
                try {
                    while (resultSetManufacturerID.next()) {
                        manufacturerID = resultSetManufacturerID.getString(1);

                    }
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
System.out.println("manufacturerID: " + manufacturerID);

Код executeQuery:
public static ResultSet executeQuery(String sql) {
        ResultSet resultSet = null;
        System.out.println(sql);
        try {
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            if (sql.contains("SELECT")) {
                resultSet = preparedStatement.executeQuery();

            } else {
                preparedStatement.executeUpdate();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return resultSet;
    }

В чем может быть проблема?
Если я скопирую запрос и вставлю его в workbench, то все работает, ID выводится.
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Во-первых, не стоит использовать конкатенацию строк для формирования sql-запросов. Во-вторых, стоит убедиться, что кодировка строки совпадает с кодировкой БД.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы