java - 在 Java 中从 DataSource 获取 Connection 对象

标签 java mysql tomcat datasource

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

    @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;
    }

但是我的数据源是空的,我得到了一个 NullPointerException。顺便说一句,相同的代码在扩展 HttpServlet 的类中运行良好。我需要在简单的 DBManager 类中使用此代码。

请帮忙,我该怎么办?

附言我配置了context.xml和web.xml

最佳答案

Autowiring 仅在 Spring 为您创建 bean 时才起作用。如果您使用 new DBManager() 创建实例,那么 Spring 将不会关心。

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

关于java - 在 Java 中从 DataSource 获取 Connection 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25935810/

相关文章:

java - Spring Boot 。映射 2 个独立的项目 Controller 而忽略一个项目

java - Google App Engine - 数据存储初始化如何跨 session 工作?

java - org.sonar.api.utils.SonarException : Can not add twice the same measure on org. sonar.api.resources.File

mysql - 如何在一个实例中为数据库的多个字符集配置 my.cnf

tomcat - Hudson 持续集成服务器 : how to see Windows mapped directories that are visible to Ant?

java - 使用 JAX-RS 响应类返回实体时出现异常

java - Spring 5 + hibernate 5 : How SessionFactory is getting Autowired with LocalSessionFactoryBean

java - Android 客户端通过 SSL 连接到服务器

mysql - 如果 SELECT 中存在 NULL 列,则删除不同的行

php - 在提交到 MySQL 之前,如何使用 PHP 将表单中输入的文本转换为标题大小写?