0

I'm using Spring jdbcTemplate for making database call but i'm not getting jdbcTemplate instance although i've autowired it.

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

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

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

In which area i'm making mistake ?

----------------Edit : Adding the upper layer ----------------

 package com.mypackage.rest

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

  @Autowired
  private CustomerDao customerDao;

   }
Pankaj
  • 3,512
  • 16
  • 49
  • 83

1 Answers1

0

Driver class is wrong it should be

database.driverClassName=oracle.jdbc.driver.OracleDriver
Karthik Prasad
  • 9,662
  • 10
  • 64
  • 112