【问题标题】:Getting Connection object from DataSource in Java从 Java 中的 DataSource 获取 Connection 对象
【发布时间】:2023-04-11 11:01:01
【问题描述】:

我正在尝试为我的 Web 应用程序建立连接 我正在使用 DataSource 对象,它是由@Resource 注入的

    @Resource(name="jdbc/name")
    private DataSource dataSource;

然后在getConnection()方法中尝试从DataSource对象获取连接

    private Connection getConnection() {
     Connection con = null;
        try {
            con = dataSource.getConnection();
        } catch (SQLException e) {
            LOGGER.error(e.getMessage());
        }
        return con;
    }

但我的 dataSource 为 null,我收到 NullPointerException。顺便说一句,相同的代码在扩展 HttpServlet 的类中运行良好。我需要在简单的 DBManager 类中使用此代码。

请帮忙,我该怎么办?

附:我已经配置了 context.xml 和 web.xml

【问题讨论】:

  • 您正在使用的类可能不是由某些框架上下文管理的,您是如何获得该方法声明的此类的对象的?
  • 我没有使用任何框架。 servlet 使用此类的方法来获取请求的数据。在 servlet 中,我得到一个实例 'DBManager.getInstance()' 并调用我需要的方法...

标签: java mysql tomcat datasource


【解决方案1】:

自动装配仅在 Spring 为您创建 bean 时起作用。如果您使用new DBManager() 创建实例,那么 Spring 不会在意。

因此您需要创建或获取应用程序上下文(应配置为包含DBManager bean)然后使用它。

【讨论】:

    猜你喜欢
    • 2019-12-07
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 2016-12-04
    • 2018-05-04
    相关资源
    最近更新 更多