spring 连接数据库的问题

问题描述

用的spring+hibernate,那位达人能帮忙解决下,感激不尽.web.xml里:....<context-param>  <param-name>contextConfigLocation</param-name>  <param-value>   /WEB-INF/applicationContext.xml  </param-value> </context-param> <servlet>    <servlet-name>context</servlet-name>    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>    <load-on-startup>1</load-on-startup></servlet>....applicationContext.xml里:....<bean id="dataSource" <br="">  class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  <property name="driverClassName" <br="">   value="com.mysql.jdbc.Driver">  </property>  <property name="url" <br="">   value="jdbc:mysql://localhost:3306/test">  </property>  <property name="username" value="root"></property>  <property name="password" value="root"></property> </bean> <bean id="sessionFactory" <br="">  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  <property name="dataSource">   <ref bean="dataSource">  </property>  <property name="hibernateProperties">   <props>    <prop key="hibernate.dialect">     org.hibernate.dialect.MySQLDialect    </prop>   </props>  </property>  <property name="mappingResources">   <list>    <value>com/test/vo/User.hbm.xml</value>  </property></bean><bean id="transactionManager" <br="">   class="org.springframework.orm.hibernate3.HibernateTransactionManager">       <property name="sessionFactory">           <ref local="sessionFactory">       </property>  </bean>  <bean id="userDAOProxy" <br="">   class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">     <property name="transactionManager">         <ref bean="transactionManager">     </property>     <property name="target">         <ref local="userDAO">     </property>     <property name="transactionAttributes">         <props>            <prop key="save*">PROPAGATION_REQUIRED </prop>             <prop key="update*">PROPAGATION_REQUIRED </prop>             <prop key="delete*">PROPAGATION_REQUIRED </prop>             <prop key="find*">PROPAGATION_REQUIRED,readOnly </prop>         </props>     </property>   </bean> <bean id="userDAO" class="com.test.dao.Impl.UserDAOImpl">  <property name="sessionFactory">   <ref bean="sessionFactory">  </property> </bean>.... DAO里:...public class UserDAOImpl extends HibernateDaoSupport implements UserDAO{ private static final Log log = LogFactory.getLog(UserDAOImpl.class); private String hql = "from user u where u.name = ?"; private boolean bo= false;  protected void initDao() {  // do nothing } public boolean save(User user) {  try {   this.getHibernateTemplate().save(user);//执行到这里出错,User对象里的name和passwd不是空的.   this.getHibernateTemplate().flush();//getHibernateTemplate()调用的各种操作都出现这样的错误.   bo = true;  } catch (RuntimeException re) {   throw re;  }  return bo; }}.......出现的错误提示如下:2008-8-22 13:18:34 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet regedit threw exceptionjava.lang.NullPointerException at com.test.dao.Impl.UserDAOImpl.save(UserDAOImpl.java:41) at com.test.service.Impl.RegeditImpl.save(RegeditImpl.java:27) at com.test.action.RegeditController.doPost(RegeditController.java:32) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:674) 问题补充:我把spring 配置文件里的标签随便删几个,让不对应,或把dataSource改了,竟然还是提示这样的错误!!!在web.xml里使用listener,启动tomcat时就出错.郁闷了啊!问题补充:怎么测试spring hibernate 连接数据库了?

解决方案

at com.test.dao.Impl.UserDAOImpl.save(UserDAOImpl.java:41)从这句看来UserDAOImpl是null啊, 也就是userDAO没有注入, 看下调用userDAO.save()这个方法的那个类中的userDAO是否为NULL!
解决方案二:
java.lang.NullPointerException at com.test.dao.Impl.UserDAOImpl.save(UserDAOImpl.java:41)完全同意没有注入,我也遇到过
解决方案三:
很明显是useDAO没有注入
解决方案四:
servlet-name>context</servlet-name> <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> <load-on-startup>1</load-on-startup>换成listener,有可能是你的Servlet的版本是3.5以的的,不支持ContextLoaderSevlet
解决方案五:
“getHibernateTemplate()调用的各种操作都出现这样的错误.”是不是没有连接到数据库?检查一下代码是否能正确的连接数据库。

时间: 2024-09-12 09:57:07

spring 连接数据库的问题的相关文章

mybats-求指点spring连接数据库后

问题描述 求指点spring连接数据库后 spring连接数据库后,数据库是mybats ,怎么配置后,dao类就可以对数据库进行增删改查了? 解决方案 参考:http://blog.csdn.net/bluesky5219/article/details/7066174 解决方案二: 写个配置文件,用注解的方式

详解Spring连接数据库的几种常用的方式_java

本文简单的讲解使用Spring连接数据库的几种常用方法: 测试主类为: package myspring2; import java.sql.*; import javax.sql.DataSource; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MySp

Java开发之Spring连接数据库方法实例分析_java

本文实例讲述了Java开发之Spring连接数据库方法.分享给大家供大家参考,具体如下: 接口: package cn.com.service; import java.util.List; import cn.com.bean.PersonBean; public interface PersonService { //保存 public void save(PersonBean person); //更新 public void update(PersonBean person); //获取

Spring中如何配置DataSource数据源

在Spring框架中有如下3种获得DataSource对象的方法: 1.从JNDI获得DataSource. 2.从第三方的连接池获得DataSource. 3.使用DriverManagerDataSource获得DataSource. 一.从JNDI获得DataSource SpringJNDI数据源配置信息: <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean&qu

db2-连接DB2指定模式名称以后,函数无法正常访问

问题描述 连接DB2指定模式名称以后,函数无法正常访问 在创建DB2数据库的时候,使用的用户是A,创建的库名是B,模式名称是C,spring连接数据库时,用currentSchema指定了模式C,但是C模式下的function却不能使用,但是如果在function前面加上C却能用,怎么能在代码里面处理,不用我给每个function前面都加C 解决方案 各位大哥.大姐知道给小弟开导开导

spring如何在web启动时不连接数据库,而在需要时在连接数据库?

问题描述 现在又一个应用,在web启动时不想让它连接数据库,如果在web启动时就自动出始化数据库连接,那么数据库连接出现问题就会使应用起不起来,现在就是要求能在应用中用到数据库,调用持久层数据时,在初始化数据库实例.现在有个方案不知可行吗,1.在web.xml中配置时先不让web启动就自动加载有关数据库初始化的配置文件,而是在以后需要数据库连接访问的应用时,通过获取配置文件,获得相应的bean实现.2.对applicationcontext.xml中的有关数据源的bean设置lazy-init=

Spring Boot MyBatis 连接数据库

最近比较忙,没来得及抽时间把MyBatis的集成发出来,其实mybatis官网在2015年11月底就已经发布了对SpringBoot集成的Release版本,Github上有代码:https://github.com/mybatis/mybatis-spring-boot 前面对JPA和JDBC连接数据库做了说明,本文也是参考官方的代码做个总结. 先说个题外话,SpringBoot默认使用 org.apache.tomcat.jdbc.pool.DataSource 现在有个叫 HikariCP

刚接触spring和hibernate连接数据库,大神请教啊,谢谢

问题描述 刚接触spring和hibernate连接数据库,大神请教啊,谢谢 type Exception report message Unable to compile class for JSP: description The server encountered an internal error that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: Un

Docker with Spring Boot

前段时间在我厂卷爷的指导下将Docker在我的实际项目中落地,最近几个小demo都尽量熟悉docker的使用,希望通过这篇文章分享我截止目前的使用经验(如有不准确的表述,欢迎帮我指出).本文的主要内容是关于Java应用程序的docker化,首先简单介绍了docker和docker-compose,然后利用两个案例进行实践说明. 简单说说Docker,现在云计算领域火得一塌糊涂的就是它了吧.Docker的出现是为了解决PaaS的问题:运行环境与具体的语言版本.项目路径强关联,因此干脆利用lxc技术