Java 使用 Spring JdbcTemplate 提取一个字符串
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/29286725/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Using Spring JdbcTemplate to extract one string
提问by lkallas
Can't seem to find a way to get one string from table using JdbcTemplate query. This is the table my sql returns:
似乎无法找到一种使用 JdbcTemplate 查询从表中获取一个字符串的方法。这是我的 sql 返回的表:
ID | STREET_NAME
------------------------
1 | Elm street
Now how am I supposed to get the value of STREET_NAME. SQL always returns one row, so no need to worry about returning more than one row.
现在我应该如何获得 STREET_NAME 的值。SQL 总是返回一行,所以不必担心返回多于一行。
For some background info: INNER JOIN and COUNT in the same query
有关一些背景信息: 同一查询中的 INNER JOIN 和 COUNT
Using Tony Stark answer to get my table.
使用 Tony Stark 的答案来获取我的桌子。
But how can I extract "Elm street" from it using JdbcTemplate?
但是如何使用 JdbcTemplate 从中提取“榆树街”?
采纳答案by jlewkovich
It would help a lot to know what your SQL query looks like, but assuming it's something like SELECT STREET_NAME FROM table WHERE ID=1;
了解您的 SQL 查询是什么样的会很有帮助,但假设它类似于 SELECT STREET_NAME FROM table WHERE ID=1;
CODE:
代码:
public String getStreetNameById(int id) {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql = "SELECT STREET_NAME FROM table WHERE ID=?";
String streetName = (String) jdbcTemplate.queryForObject(
sql, new Object[] { id }, String.class);
return streetName;
}
回答by Laszlo Lugosi
If you want to get only one column "string" from your table (or any query with joins), you have to say the name of the column.
如果您只想从您的表(或任何带有连接的查询)中获取一列“字符串”,您必须说出该列的名称。
Using SELECT * FROM TABLEis a very-very bad practice by the way. I bet you did this.
顺便说一下,使用SELECT * FROM TABLE是一种非常非常糟糕的做法。我打赌你这样做了。
@JLewkovich modified code:
@JLewkovich 修改代码:
public String getStreetNameById(int id) {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql = "SELECT STREET_NAME FROM table WHERE ID=?";
String streetName = (String) jdbcTemplate.queryForObject(
sql, new Object[] { id }, String.class);
return streetName;
}
But what if there is 0 or more than one result? Think about it!
但是如果有 0 个或多个结果呢?想一想!
But to getting a sequence value (in Oracle), this should work.
但是要获得序列值(在 Oracle 中),这应该可行。
public Long getSequence() {
Long seq;
String sql = "select SEQ_XY.NEXTVAL from dual";
seq = jdbcTemplateObject.queryForObject(sql, new Object[] {}, Long.class);
return seq;
}