2013-09-30 66 views
0

我正在使用Spring jdbcTemplate進行數據庫調用,但我沒有獲取jdbcTemplate實例,儘管我自動裝配了它。沒有使用Spring註釋獲取jdbcTemplate的實例

package com.mypackage.dao 
@Repository 
public class CustomerDaoImpl implements CustomerDao { 

private JdbcTemplate jdbcTemplate; 

@Autowired 
public void setDataSource(DataSource dataSource) { 
    this.jdbcTemplate = new JdbcTemplate(dataSource); 
} 

public Customer findCustomer(){ 
     ........... 
    jdbcTemplate.execute ...... 
     ........... 
    } 
} 

在Spring的applicationContext.xml

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" value="${database.driverClassName}" /> 
    <property name="url" value="${database.url}" /> 
    <property name="username" value="${database.username}" /> 
    <property name="password" value="${database.password}" /> 
    <property name="initialSize" value="1" /> 
    <property name="maxActive" value="3" /> 
</bean> 

<context:component-scan base-package="com.mypackage"> 
    <context:exclude-filter expression="org.springframework.stereotype.Controller" 
     type="annotation" /> 
</context:component-scan> 

database.properties文件

database.url=jdbc:oracle:thin:@myhost:1521:OQA1 
database.username=my_app 
database.password=my_app_password 
database.driverClassName=oracle.jdbc.OracleDriver 

在這方面我正在做的錯誤?

----------------編輯:添加上層----------------

package com.mypackage.rest 

    @Service("customerResource") 
    @Path("/customer") 
    public class CustomerResource extends AbstractResource{ 

    @Autowired 
    private CustomerDao customerDao; 

    } 
+0

這看起來沒問題,你會得到什麼異常?你的database.properties文件是由Spring加載的嗎?您是否啓用tx:註解驅動? –

+0

您是否看到任何應用程序異常? –

+0

@FredClose關閉由於jpaTemplate實例未被初始化,我沒有看到除NullPointer之外的任何異常。我沒有啓用TX:註解驅動,會導致這個問題? – Pankaj

回答

0

驅動類錯了應該是

database.driverClassName=oracle.jdbc.driver.OracleDriver 
+0

這會使應用程序無法啓動。問題是該領域不是自動裝配的。 –

+0

是的,我同意,因爲他得到了jdbcTemplate的空指針異常,但只有我可以注意到的差異是驅動程序類 –

+0

請注意,在'odjbc14.jar'中有一個'oracle.jdbc.OracleDriver'類。我不知道其他罐子,或者如果這是瘦甲骨文的正確驅動。 –

相關問題