使用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是个抽象类也没有关系。
在线求教。。
http://wendal.net/2013/08/23.html
推荐你先看看这篇文章