Results 1 to 3 of 3

Thread: org.springframework.dao.support.DataAccessUtils.re quiredSingleResult(Ljava/util/Colle

  1. #1
    Join Date
    Mar 2012
    Posts
    4

    Default org.springframework.dao.support.DataAccessUtils.re quiredSingleResult(Ljava/util/Colle

    Hi Guys,

    Having used JdbcTemplate I was working on NamedParameterJdbcTemplate with queryForInt(sql,sqlParamSource) method and getting below error .

    Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.dao.support.DataAccessUtils.re quiredSingleResult(Ljava/util/CollectionLjava/lang/Object;
    at org.springframework.jdbc.core.namedparam.NamedPara meterJdbcTemplate.queryForObject(NamedParameterJdb cTemplate.java:152)
    at org.springframework.jdbc.core.namedparam.NamedPara meterJdbcTemplate.queryForObject(NamedParameterJdb cTemplate.java:164)
    at org.springframework.jdbc.core.namedparam.NamedPara meterJdbcTemplate.queryForInt(NamedParameterJdbcTe mplate.java:191)
    at dao.EmpDaoImpl_new.getNoEmployee(EmpDaoImpl_new.ja va:46)
    at main.EmpMainNamed.getNoEmployee(EmpMainNamed.java: 27)
    at main.EmpMainNamed.main(EmpMainNamed.java:23)


    and Please see my code below..

    mybeans.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>

    <bean id="datasource"
    class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/test" />
    <property name="username" value="root" />
    <property name="password" value="sys" />

    </bean>

    <bean id="empDao_new" class="dao.EmpDaoImpl_new">
    <constructor-arg>
    <ref local="datasource" />
    </constructor-arg>
    </bean>
    </beans>

    EmpDaoImpl_new.java


    package dao;

    import java.util.List;

    import javax.sql.DataSource;

    import org.springframework.jdbc.core.RowMapper;
    import org.springframework.jdbc.core.namedparam.MapSqlPar ameterSource;
    import org.springframework.jdbc.core.namedparam.NamedPara meterJdbcTemplate;
    import org.springframework.jdbc.core.namedparam.SqlParame terSource;
    import com.Interface.*;
    import com.Model.Employee;;

    public class EmpDaoImpl_new implements EmpDao{

    NamedParameterJdbcTemplate namedParameterJdbcTemplate;

    public EmpDaoImpl_new() {
    // TODO Auto-generated constructor stub
    }
    public EmpDaoImpl_new(DataSource ds ) {
    this.namedParameterJdbcTemplate=new NamedParameterJdbcTemplate(ds);
    }

    public Employee getEmpById(int eno) {
    // TODO Auto-generated method stub
    return null;
    }
    public int getNoEmployee(String first_name) {
    String sql="select count(0) from employee where first_name= :firstName";
    SqlParameterSource sqlParamSource=new MapSqlParameterSource("firstName",first_name);
    int noEmployee=namedParameterJdbcTemplate.queryForInt( sql,sqlParamSource);
    return noEmployee;
    }
    }

    EmpMainNamed.java


    package main;

    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.beans.factory.xml.XmlBeanFacto ry;
    import org.springframework.core.io.FileSystemResource;

    import com.Interface.EmpDao;

    public class EmpMainNamed {

    BeanFactory beanFactory;

    EmpDao empDAO;

    public EmpMainNamed() {

    beanFactory = new XmlBeanFactory(new FileSystemResource("src/mybeans.xml"));
    empDAO = (EmpDao) beanFactory.getBean("empDao_new");
    }

    public static void main(String[] args) {
    EmpMainNamed obj = new EmpMainNamed();
    obj.getNoEmployee("RAM");
    }

    public void getNoEmployee(String first_Name) {
    int empCount = empDAO.getNoEmployee(first_Name);
    System.out.println("Number of employees aginst " + first_Name + " is "
    + empCount);

    }
    }


    EmpDao.java

    package com.Interface;

    import java.util.List;



    public interface EmpDao {


    public int getNoEmployee(String first_name);

    }



    NOte:- Datasource is NamedParameterJdbcTemplate is being pulled correctly. and It is generating error while invoking queryForInt(sql,sqlParamSource).

    Quick response is deeply appreciated.

    Thanks,
    Vineet

  2. #2
    Join Date
    Jun 2006
    Location
    The Netherlands
    Posts
    13,624

    Default

    Please use [ code][/code ] tags when posting code that way it remains readable ....

    Don't mix spring jar versions judging from the stacktrace that is what you are doing.
    Marten Deinum
    Java Consultant / Pragmatist / Open Source Enthousiast / Author


    Pro Spring MVC: With Web Flow
    Conspect

    Have you read the reference guide.
    Use the [ code ] tags, young padawan

  3. #3
    Join Date
    Mar 2012
    Posts
    4

    Default

    Thanks you Marten,
    Sure I will take care to use tag when posting code.

    and Yes I was having some inappropriate jar file which was causing the issue for me.


    Thanks,
    VIneet

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •