sql2o - select 查询从 VARCHAR 列中删除尾随空格
sql2o - select query removing trailing spaces from VARCHAR coulmn
使用 sql2o (https://github.com/aaberg/sql2o)
选择一个具有落后空间的varchar列(例如"some value "
)return值是"some value"
当从 mysql cli 中选择时,结果包含尾随空格
找不到任何文档来防止这种情况发生
- table:
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 ??? :( ");
}
我想我在 Sql2o 中找到了你的答案。
我相信通过使用 String.class
,它正在使用 StringConverter class 将您的查询输出转换为字符串。在 StringConverter class 的最底部是这一行:
return val.toString().trim();
找到here
使用 sql2o (https://github.com/aaberg/sql2o)
选择一个具有落后空间的varchar列(例如"some value "
)return值是"some value"
当从 mysql cli 中选择时,结果包含尾随空格
找不到任何文档来防止这种情况发生
- table:
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 ??? :( ");
}
我想我在 Sql2o 中找到了你的答案。
我相信通过使用 String.class
,它正在使用 StringConverter class 将您的查询输出转换为字符串。在 StringConverter class 的最底部是这一行:
return val.toString().trim();
找到here