读书人

Spring的得到JdbcTemplate,报NullPoin

发布时间: 2012-05-02 15:36:04 作者: rapoo

Spring的得到JdbcTemplate,报NullPointerException
很明显JdbcTemplate没有被事例化
<beans>
<bean id= "dataSource "

class= "org.apache.commons.dbcp.BasicDataSource ">

<property name= "driverClassName ">

<value> net.sourceforge.jtds.jdbc.Driver </value>

</property>

<property name= "url ">

<value> jdbc:jtds:sqlserver://127.0.0.1:1433/test </value>

</property>

<property name= "username ">

<value> sa </value>

</property>

<property name= "password ">

<value> </value>

</property>

</bean>

<bean id= "jdbcTemplate " class= "org.springframework.jdbc.core.JdbcTemplate ">

<constructor-arg>
<ref bean= "dataSource " />
</constructor-arg>
</bean>

<bean id= "dao " class= "bean.Dao " singleton= "false ">
<property name= "jdbcTemplate ">
<ref bean= "jdbcTemplate " />
</property>
</bean>

</beans>

public class Dao implements DaoImpl{

private JdbcTemplate jdbcTemplate;

public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}

public void findAll() {
String sql = "select * from user ";


jdbcTemplate.execute(sql); //报错
}

}


[解决办法]
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
---------
要get吗?
[解决办法]
原因是没有得到数据源,spring的数据源注入方式,有两种方式可以等到,一种是web应用,spring会把数据源保存在servletContext中,建议你的数据操作类继承自JdbcDaoSupport,此类是spring的数据访问支持实现.这时spring框架会自动调用JdbcDaoSupport的setJdbcTemplate方法

读书人网 >J2EE开发

热点推荐