2015-08-26 20 views
5

Tôi đang cố gắng để thực hiện một truy vấn sql và cố gắng để có được giá trị của nó trong một biến số nguyên, nhưng tôi nhận được một lỗi thời gian biên dịch nóiPhương pháp queryForInt (String) là undefined cho các loại JdbcTemplate

Phương thức queryForInt (String) không được xác định cho loại JdbcTemplate

Mã của tôi là chính xác, tôi nghĩ vậy, vì vậy tôi gặp vấn đề trong tệp pom của tôi.

tập tin pom.xml của tôi:

<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> 

tôi tập 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!"); 
    } 
} 

Trả lời

7

Phương pháp JdbcTemplate.queryForIntdeprecated trong mùa xuân 3.2.2 và nó đã removed trong mùa xuân 4.2.0.

Thực sự có xung đột phụ thuộc trong số pom.xml của bạn: bạn phụ thuộc vào phiên bản Spring 4.1.0.RELEASE4.2.0.RELEASE (đối với spring-jdbc). Maven giải quyết xung đột đó bằng cách sử dụng phiên bản 4.2.0.RELEASE cho tất cả các phụ thuộc của Spring, vì vậy đó là lý do tại sao phương thức queryForInt không khả dụng.

Bạn có thể:

Tôi khuyên bạn nên nâng cấp vì thực tiễn không tốt để tiếp tục sử dụng API không dùng nữa.

Xem this question để biết thêm thông tin.

+0

tôi đã sử dụng số int = jdbcTemplateObject.queryForObject (SQL1, Integer.class); – Labeo

1

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/core/JdbcTemplate.html

Không có phương pháp như vậy trong mùa xuân JdbcTemplate.

Vì vậy, pom của bạn là tốt, bạn chỉ cần kiểm tra xem bạn đã tùy chỉnh JdbcTemplate để có một số phương pháp ghi đè hay bạn đang sử dụng phương pháp sai.

Bạn có thể muốn sử dụng phương pháp mới nhất

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/core/JdbcTemplate.html#queryForObject-java.lang.String-java.lang.Class-

queryForObject(sql, Integer.class, arg1, arg2, ...); 
Các vấn đề liên quan