sql2o - выберите запрос, удаляя завершающие пробелы из VARCHAR coulmn - PullRequest
2 голосов
/ 09 мая 2019

с использованием sql2o (https://github.com/aaberg/sql2o)

при выборе столбца VARCHAR с пробелами в конце (например, "some value ") возвращаемое значение равно "some value"

при выборе из mysql cli результат содержит завершающие пробелы

не могу найти документацию, как этого избежать

  • таблица:
CREATE TABLE names
(
    name     VARCHAR(100),
    PRIMARY KEY (experiment_key, metric_name)
);
  • пример кода:
 Sql2o sql2o;

        String name = "some name with trailing space    ";
        try (Connection con = sql2o.open()) {
            con.createQuery("INSERT INTO names (name) VALUES(:name)")
                    .addParameter("name", name)
                    .executeUpdate();
        }        


        String nameFromDB; 
        try (Connection con = sql2o.open()) {
            nameFromDB =  con.createQuery("select name from names")
                    .executeAndFetchFirst(String.class);
        }

        if (!nameFromDB.equals(name)){
            throw new RuntimeException("where did the trailing spaces go ??? :( ");
        }

1 Ответ

1 голос
/ 09 мая 2019

Думаю, я нашел ваш ответ в Sql2o.

Я полагаю, что используя String.class, он использует класс StringConverter для преобразования вывода запроса в строку. В самом низу класса StringConverter находится эта строка:

return val.toString().trim();

Найдено здесь

...