java - JdbcTemplate 类型未定义方法 queryForInt(String)

标签 java spring maven spring-jdbc jdbctemplate

我正在尝试执行一个 sql 查询并尝试在一个整数变量中获取它的值,但是我收到一个编译时错误提示

The method queryForInt(String) is undefined for the type JdbcTemplate

我认为我的代码是正确的,所以我的 pom 文件有问题。

我的 pom.xml 文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>sql</groupId>
  <artifactId>sql</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>sql</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring.version>4.1.0.RELEASE</spring.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>



   <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>




    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.2.0.RELEASE</version>
</dependency>



    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.9</version>
    </dependency>


  </dependencies>
</project>

我的 app.java 文件:

package sql.sql;


import java.sql.ResultSet;
import java.sql.SQLException;
//import org.springframework.jdbc.core;
import java.util.List;

import javax.sql.DataSource;

//import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;


public class App 
{
    public static void main( String[] args )
    {
        //DataSource dataSource = null ;
        ApplicationContext context = 
                new ClassPathXmlApplicationContext("web.xml");
        DataSource obj = (DataSource) context.getBean("dataSource");
         JdbcTemplate jdbcTemplateObject = new JdbcTemplate(obj);


        String SQL1 = "select count(*) from issues";
        int row1 = jdbcTemplateObject.queryForInt(SQL1);
        System.out.println(row1);

        System.out.println( "Hello World!" );
    }
}

最佳答案

方法JdbcTemplate.queryForIntdeprecated在 Spring 3.2.2 中是 removed在 Spring 4.2.0 中。

实际上你的pom.xml中存在依赖冲突: 你依赖 Spring 版本 4.1.0.RELEASE4.2.0.RELEASE (对于 spring-jdbc)。 Maven 通过使用版本 4.2.0.RELEASE 解决了这个冲突对于所有 Spring 依赖项,这就是方法 queryForInt 的原因不可用。

你可以:

我建议您升级,因为继续使用已弃用的 API 不是一个好习惯。

参见 this question了解更多信息。

关于java - JdbcTemplate 类型未定义方法 queryForInt(String),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32225444/

相关文章:

java - 无法使用 HtmlUnitDriver 单击 Web 元素

java - 如何解决 Eclipse 不显示 webapp-javaee7 archetype Maven 项目中 javax.annotation 包的 Javadocs 的问题?

java - 如何从 Java JDBC-ODBC 桥访问 UniqueIdentifier 列

java - 打包并运行一个带有spring依赖的Java应用

java - 多模块项目中的 Maven 并行构建

java - 将单例注入(inject)到 Spring Boot 应用程序上下文中

java - 通过 Maven 插件运行 Gauge 测试时如何设置日志级别

java - SimpleDateFormat解析错误位置

java - 从jar文件中读取文件,使用netbeans生成的jar

java - 在 Maven 构建期间将 Swagger 规范保存到文件