2 u011780258 u011780258 于 2014.08.14 10:54 提问

【求解】SPRING namedParameterJdbcTemplate为什么返回null?

使用spring jdbc

首先。 dataSource 用的C3P0 , 测试没有问题。

其次是DefaultService接口

public interface DefaultService {
}

以及DefaultServiceImpl

public class DefaultServiceImpl extends NamedParameterJdbcDaoSupport implements DefaultService{

}

我在spring中声明了这个类

<bean id="defaultService" class="x.x.x.DefaultServiceImpl">
    <property name="dataSource" ref="dataSource"></property>
</bean>

然后我还有一个类是BaseServiceImpl

public abstract class BaseServiceImpl {
    private DefaultService defaultService;
    /**
     * @return the defaultService
     */
    public DefaultService getDefaultService () {
        return defaultService;
    }
    /**
     * @param defaultService the defaultService to set
     */
    public void setDefaultService (DefaultService defaultService) {
        this.defaultService= defaultService;
    }
}

在spring中配置

<bean id="serviceBase" abstract="true">
     <property name="defaultService" ref="defaultService" />
</bean>

接下来是业务SERVICE

有一个TestService

public interface TestService {
    public List findDataList(Map params);
}

以及他的实现类, 继承了BaseServiceImpl

public class TestServiceImpl extends BaseServiceImpl implements TestService {
    /**
     * @descrption
     */
    @Override
    public List findDataList(Map params) {
        String sql = "SELECT * FROM USERMARK WHERE ID = :id";
        return this.getNamedParameterJdbcTemplate().query(sql, params, new QueryRowMapper());
    }
}

然后在spring中配置了

<bean id="testService" autowire="byName" parent="serviceBase" class="x.x.x.TestServiceImpl"/>

在action里注入了这个testService, 没有问题注入成功, 进入到service里的findDataList方法了。
但是this.getNamedParameterJdbcTemplate() 返回为null 报了空指针。。
namedParameterJdbcTemplate在NamedParameterJdbcDaoSupport类中注入。
首先要说明的是dataSource没有问题, 其次是和BaseServceImpl是个抽象类也没有关系。
在线求教。。

1个回答

finallygo
finallygo   2014.08.28 12:47

http://wendal.net/2013/08/23.html
推荐你先看看这篇文章

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!