【问题标题】:Cannot make a static reference to the non-static method query(String, RowMapper<Object>) from the type JdbcTemplate [duplicate]无法从 JdbcTemplate 类型中对非静态方法查询(String,RowMapper<Object>)进行静态引用 [重复]
【发布时间】:2015-03-14 00:14:03
【问题描述】:

我正在做关于 Spring Frame Work 的项目。下面是服务类中的一段代码。 嘿伙计们,我能知道这段代码有什么问题吗??

List<EventCommand> employee = (List<EventCommand>) JdbcTemplate.query(sql, new EventService());

它说

无法从 JdbcTemplate 类型对非静态方法查询(String, RowMapper)进行静态引用

【问题讨论】:

  • 你有 JdbcTemplate 类的实例(对象)吗?
  • 好吧,你的问题是什么?您正在以静态方式 (Class.method()) 访问该方法。您需要一个对象实例来调用非静态方法。
  • 感谢您的意见。

标签: java spring jsp spring-mvc


【解决方案1】:

query 不是静态的。您需要new JdbcTemplate() 或类似名称。请咨询JavaDoc

您应该能够从错误中解决这个问题。如果你不能,我建议你花更多时间学习 Java 的基础知识。

【讨论】:

  • 感谢您的意见。我已经为 JdbcTemplate 创建了一个对象,但如果忘记查看它。
【解决方案2】:

创建JdbcTemplate 的实例,然后调用query(String, RowMapper) api。

@Autowired
JdbcTemplate jdbcTemplate;  // use spring autowiring to autowire jdbcTemplate

List<EventCommand> employee = (List<EventCommand>) jdbcTemplate.query(sql, new EventService());

【讨论】:

  • 谢谢。错误已解决。非常感谢。
【解决方案3】:

首先你需要数据源。你可以在这里阅读它

http://docs.oracle.com/javase/tutorial/jdbc/basics/sqldatasources.html

接下来需要创建JdbcTemplate

http://docs.spring.io/spring-framework/docs/2.0.x/api/org/springframework/jdbc/core/JdbcTemplate.html

并在您的查询中使用它

List<EventCommand> employee = (List<EventCommand>) (jdbcTemplate).query(sql, new EventService());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 2019-06-29
    • 2014-06-08
    • 2012-07-14
    • 2013-01-15
    相关资源
    最近更新 更多