2016-12-21 4 views
0

Ich bin ein Neuling JAVA. Ich habe eine Config-Dateijava.sql.SQLException: Ungültiger Spaltenindex mit jdbcTemplate

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context.xsd"> 

    <context:component-scan base-package="org.springframework.docs.test" /> 
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> 
     <property name="url" value="jdbc:oracle:thin:@192.168.1.217:1521:ksoradev"/> 
     <property name="username" value="pkrdm"/> 
     <property name="password" value="mypass"/> 
    </bean> 
</beans> 

und dann meinen Code

public class Main { 
    public static void main(String args[]) throws Exception { 
     ApplicationContext context = new ClassPathXmlApplicationContext("context.config.xml"); 
     DataSource dataSource = (DataSource) context.getBean("dataSource"); 
     JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); 
     String lastName = jdbcTemplate.queryForObject(
       "select a.firstname from TEST a", 
       new Object[]{1212L}, String.class); 
     System.out.println(lastName); 
    } 
} 

Wenn ich es laufen, es Fehler Ungültige Spaltenindex zurück. Kann mir jemand helfen ?

Thank

+1

fehlt eine Where-Klausel. Wählen Sie einen Vornamen aus Test a, wobei =? –

Antwort

2

Sie queryForObject(java.lang.String, java.lang.Object[], java.lang.Class) verwenden, die mit Platzhalter zu einer PreparedStatement Typ Abfrage zu binden, ein Array von Objekten erwartet.

Ihre Anfrage wahrscheinlich fehlt Platzhalter, z:

select a.firstname from TEST a where id = ? 

Sie Fehler über ungültige Spaltenindizes erhalten, weil der Inhalt Ihrer Array kann zur Zeit nicht an Platzhalter Indizes abgebildet werden.

+1

danke !!! @Berger –

Verwandte Themen