我就想用spring实现一个简单的查询显示
这是我的applicationContext.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">
   <property name="driverClassName">
     <value>net.sourceforge.jtds.jdbc.Driver</value>
   </property>
   <property name="url">
     <value>jdbc:jtds:sqlserver://localhost:1433;DatabaseName=sap_finance</value>
   </property>
   <property name="username">
     <value>sa</value>
   </property>
   <property name="password">
     <value>123</value>
   </property>
 </bean>
 <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
   <property name="dataSource">
     <ref local="dataSource"/>
   </property>
 </bean><bean id="testDao" class="com.test.dao.testDao">
  <property name="jdbcTemplate">
    <ref local="jdbcTemplate"/>
  </property>
</bean> 
</beans>这是我的后台public class testCmd extends testDao implements Controller{
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
    throws Exception{
JdbcTemplate jdbcTemplate =getJdbcTemplate();
String sql="select * from test";
List sqlList=jdbcTemplate.queryForList(sql);
request.setAttribute("sqlList", sqlList);
return new ModelAndView("test/test.jsp");
    }
}然后运行报错:
java.lang.NullPointerException
com.test.cmd.testCmd.handleRequest(testCmd.java:20)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:820)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:755)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)请前辈们帮忙看看!到底是哪里错了呢?感激不尽!!!

解决方案 »

  1.   

    <?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">
       <property name="driverClassName">
         <value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
       </property>
       <property name="url">
         <value>jdbc:sqlserver://localhost:1433;databaseName=sap_finance</value>
       </property>
       <property name="username">
         <value>sa</value>
       </property>
       <property name="password">
         <value>123</value>
       </property>
     </bean>
     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
       <property name="dataSource">
         <ref local="dataSource"/>
       </property>
     </bean><bean id="testDao" class="com.test.dao.testDao">
      <property name="jdbcTemplate">
        <ref local="jdbcTemplate"/>
      </property>
    </bean> 
    </beans>
    我applicationContext.xml
    这样写也报一样的错,是为什么呀?
      

  2.   

    在getJdbcTemplater()方法 断点下
    看看是不是这个方法报空的
      

  3.   

    出错不可怕,可怕的是没有分析的能力,这个当然不是说你
    先分析一下可能出错的原因,然后断点一点一点调试,实在找不到原因,去google描述一下你的出错原因,然后搜索,一切问题迎刃而解
      

  4.   

    testCmd.java,进这个类里面看一下,设断点,看是哪个值是空的
      

  5.   

    List sqlList=jdbcTemplate.queryForList(sql);这一句错误
      

  6.   

    jdbcTemplate为空,没有注入。不知楼主可有配置spring监听器?
      

  7.   

    配置了监听器没,看你这应该是个web程序
      

  8.   

    要配置监听器的,不然spring没有加载是没法帮你注入的<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>//这里是spring配置文件位置,以你实际位置为准默认是在src下面的
    </context-param><listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
      

  9.   

    <bean id="testDao" class="com.test.dao.testDao">
      <property name="jdbcTemplate">
      <ref local="jdbcTemplate"/>
      </property>
    </bean> 
    你可以用注解的方式 代替上面的代码,注解是非常简单的,而且还不容易出错。
      

  10.   

    话说spring注入一共要做几件事啊?
    也就是说spring是如何注入的啊?
      

  11.   

    是在testDao获取配置connection的连接吗?
    代码贴出来看看 
      

  12.   

    找个hibernate的配置文件看看。。那里面所有的配置数据库都有。。大叔
      

  13.   

    ## Microsoft Driver (not recommended!)
    #hibernate.connection.driver_class com.microsoft.jdbc.sqlserver.SQLServerDriver
    #hibernate.connection.url jdbc:microsoft:sqlserver://1E1;DatabaseName=test;SelectMethod=cursor
      

  14.   

    是个勤快的孩子,发贴时间是23.40....但是只是个null异常就跑到csdn上来问,杀鸡用牛刀。