我就想用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)请前辈们帮忙看看!到底是哪里错了呢?感激不尽!!!
这是我的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)请前辈们帮忙看看!到底是哪里错了呢?感激不尽!!!
<!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
这样写也报一样的错,是为什么呀?
看看是不是这个方法报空的
先分析一下可能出错的原因,然后断点一点一点调试,实在找不到原因,去google描述一下你的出错原因,然后搜索,一切问题迎刃而解
<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>
<property name="jdbcTemplate">
<ref local="jdbcTemplate"/>
</property>
</bean>
你可以用注解的方式 代替上面的代码,注解是非常简单的,而且还不容易出错。
也就是说spring是如何注入的啊?
代码贴出来看看
#hibernate.connection.driver_class com.microsoft.jdbc.sqlserver.SQLServerDriver
#hibernate.connection.url jdbc:microsoft:sqlserver://1E1;DatabaseName=test;SelectMethod=cursor