似乎找不到使用JdbcTemplate查询从表中获取一个字符串的方法。这是我的sql返回的表:
ID | STREET_NAME
------------------------
1 | Elm street
现在我应该如何获得STREET_NAME的价值。 SQL总是返回一行,因此不必担心会返回多于一行。
有关一些背景信息:INNER JOIN and COUNT in the same query
使用托尼·斯塔克的答案来得到我的桌子。
但是如何使用JdbcTemplate从中提取“榆树街”?
知道您的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;
}
如果您只想从表中获得一个列“字符串”(或任何具有联接的查询,则必须说出列的名称。
顺便说一下,使用SELECT * FROM TABLE是非常非常糟糕的做法。我敢打赌你做到了。
@ 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;
}
但是,如果有0个或多个结果呢?考虑一下!
但是要获得序列值(在Oracle中,这应该可以。)>
public Long getSequence() {
Long seq;
String sql = "select SEQ_XY.NEXTVAL from dual";
seq = jdbcTemplateObject.queryForObject(sql, new Object[] {}, Long.class);
return seq;
}