Lab*_*beo 5 java spring spring-jdbc jdbctemplate maven
我正在尝试执行一个SQL查询并尝试在整数变量中获取它的值,但我得到一个编译时错误说
对于JdbcTemplate类型,方法queryForInt(String)是未定义的
我认为我的代码是正确的,所以我的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>
Run Code Online (Sandbox Code Playgroud)
我的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!" );
}
}
Run Code Online (Sandbox Code Playgroud)
该方法在Spring 3.2.2 JdbcTemplate.queryForInt中已弃用,并在Spring 4.2.0 中删除.
实际上你的依赖冲突pom.xml:你依赖于Spring版本4.1.0.RELEASE和4.2.0.RELEASE(for spring-jdbc).Maven通过使用4.2.0.RELEASE所有Spring依赖项的版本来解决该冲突,因此这就是该方法queryForInt不可用的原因.
您可以 :
4.1.0.RELEASE为所有依赖项降级到Spring4.2.0.RELEASE,而使用queryForObject(String sql, Class<T> requiredType)与Integer.class作为requiredType.我建议您升级,因为继续使用已弃用的API不是一个好习惯.
有关详细信息,请参阅此问题.
| 归档时间: |
|
| 查看次数: |
6248 次 |
| 最近记录: |