0 0

SSH框架中的有关数据库的问题5

我其他没有问题,就是连接数据库可能有问题,但是程序也能初始化成功,但在执行具体sql的时候,不能执行

java.lang.NullPointerException
at com.test.dao.BaseDaoImpl.loadObject(BaseDaoImpl.java:29)
at com.test.service.impl.UserServiceImpl.selectUserByNumber(UserServiceImpl.java:38)
at com.test.struts.action.UserAction.selectUserByNumber(UserAction.java:90)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.test.struts.interceptor.LoggerInterceptor.intercept(LoggerInterceptor.java:42)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.TimerInterceptor.invokeUnderTiming(TimerInterceptor.java:124)
at com.opensymphony.xwork2.interceptor.TimerInterceptor.intercept(TimerInterceptor.java:111)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)


这是我的其中spring和hibernate的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/aop 
            http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
            http://www.springframework.org/schema/tx 
            http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <!-- 开启注解处理器 -->
    <context:annotation-config/>
	
	<!-- 定义使用C3P0连接池的数据源 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<!-- 指定连接数据库的JDBC驱动 -->
		<property name="driverClass">
		 	<value>com.mysql.jdbc.Driver</value>
		 </property>
		<!-- 连接数据库所用的URL -->
		<property name="jdbcUrl">
			<value>jdbc:mysql://localhost:3306/softtest?useUnicode=true&amp;characterEncoding=utf-8</value>
		</property>
		<!-- 连接数据库的用户名 -->
		<property name="user">
			<value>root</value>
		</property>
		<!-- 连接数据库的密码 -->
		<property name="password">
			<value>root</value>
		</property>
		<!-- 设置数据库连接池的最大连接数 -->
		<property name="maxPoolSize">
			<value>20</value>
		</property>
		<!-- 设置数据库连接池的最小连接数 -->
		<property name="minPoolSize">
			<value>2</value>
		</property>
		<!-- 设置数据库连接池的初始化连接数 -->
		<property name="initialPoolSize">
			<value>2</value>
		</property>
		<!-- 设置数据库连接池的连接的最大空闲时间,单位为秒 -->
		<property name="maxIdleTime">
			<value>20</value>
		</property>
	</bean>

    <!-- 定义Hibernate的SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!-- 依赖注入上面定义的数据源dataSource -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 注册Hibernate的ORM映射文件 -->
        <property name="mappingResources">
            <list>
	            <value>com/test/orm/FaultInfo.hbm.xml</value>
	            <value>com/test/orm/ModelInfo.hbm.xml</value>
	            <value>com/test/orm/ProjectInfo.hbm.xml</value>
	            <value>com/test/orm/UserInfo.hbm.xml</value>
	            <value>com/test/orm/UserModel.hbm.xml</value>
	            <value>com/test/orm/UserFault.hbm.xml</value>
	            <value>com/test/orm/UserProject.hbm.xml</value>
	           	<value>com/test/orm/FaultType.hbm.xml</value>
	           	<value>com/test/orm/Logger.hbm.xml</value>   
            </list>
        </property>
        <!-- 设置Hibernate的相关属性 -->
        <property name="hibernateProperties">
            <props>
                <!-- 设置Hibernate的数据库方言 -->
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <!-- 设置Hibernate是否在控制台输出SQL语句,开发调试阶段通常设为true -->
                <prop key="show_sql">true</prop>
				<!-- 设置Hibernate一个提交批次中的最大SQL语句数 -->
                <prop key="hibernate.jdbc.batch_size">50</prop>
            </props>
        </property>
    </bean>

    <!--定义Hibernate的事务管理器HibernateTransactionManager -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <!-- 依赖注入上面定义的sessionFactory -->
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    
    <!-- 装配HibernateTemplate实例 -->
	<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
		<constructor-arg ref="sessionFactory"/>
	</bean>
</beans>


这是我的数据库操作代码
public Object loadObject(String hql) {
		final String hql1 = hql;
		Object obj = null;
		try {
			List list = hibernateTemplate.executeFind(new HibernateCallback() {
				public Object doInHibernate(Session session)
						throws HibernateException {
					Query query = session.createQuery(hql1);
					return query.list();
				}
			});
			if (list.size() > 0) {
				obj = list.get(0);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

		return obj;
	}
2012年10月26日 13:35

4个答案 按时间排序 按投票排序

0 0

采纳的答案

肯定是你的BaseDaoImpl对象的空的,看下你的BaseDaoImpl这个对象是否注入了或者注入是否正确。

2012年10月28日 08:03
0 0

看一下 BaseDaoImpl 中的 hibernateTemplate 是否注入过。

2012年10月26日 15:32
0 0

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
        <constructor-arg ref="sessionFactory"/>  
    </bean>
改为这样试试:
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
        <property name="sessionFactory" ref="sessionFactory"/> 
    </bean>

2012年10月26日 14:11
0 0

java.lang.NullPointerException
at com.test.dao.BaseDaoImpl.loadObject(BaseDaoImpl.java:29)
BaseDaoImpl.java:29 行,看29行是什么?

2012年10月26日 13:38

相关推荐

    SSH框架整合对数据库作增删查改操作 源代码+数据库

    在这个"SSH框架整合对数据库作增删查改操作 源代码+数据库"的项目中,你可以找到以下关键知识点: 1. **Spring配置**:包括Bean的定义、依赖注入、事务管理配置等,这些配置文件(如 applicationContext.xml)是...

    SSH框架实现增删改查,Oracle数据库

    在SSH框架中,我们需要创建对应的数据库表,设计好表结构,以满足业务需求。Oracle支持多种高级特性,如存储过程、触发器和分区等,可以提高数据处理的效率和安全性。 5. **CRUD操作**: - **Create**(创建):在...

    完整的SSH框架开发的系统源码包含数据库设计等

    4. **数据库设计**:在SSH框架开发的系统中,数据库设计至关重要。它包括概念数据模型、逻辑数据模型和物理数据模型的设计。表结构、主键、外键、索引等元素的合理规划,能确保数据的一致性和完整性,提高系统的性能...

    SSH框架整合源码和数据库(结合MySQL实现简单的用户登录)

    SSH框架整合是Java Web开发中常见的一种技术栈组合,它由Struts、Spring和Hibernate三个框架构成,分别负责表现层、业务层和持久层的管理。这个项目标题提及的是一个结合了MySQL数据库实现简单用户登录功能的SSH整合...

    ssh框架及sql数据库jar包集合

    这个压缩包提供的jar文件,为开发者搭建SSH框架和SQL Server数据库环境提供了便利,只需将这些jar包添加到项目的类路径中,就可以开始编写代码,大大减少了配置工作。但要注意的是,不同的项目可能还需要其他依赖,...

    基于ssh框架的mysql数据库导出脚本

    "基于SSH框架的mysql数据库导出脚本"这个主题主要涉及如何使用SSH框架中的工具或自定义脚本来导出MySQL数据库中的数据。在实际开发中,数据备份和迁移是非常重要的环节,尤其是在大型项目中,确保数据的安全性和完整...

    JavaEE +SSH框架+mysql数据库 BBS论坛系统项目地址.docx

    《JavaEE + SSH框架 + MySQL数据库:构建BBS论坛系统》 在信息技术领域,JavaEE作为企业级应用开发的重要平台,常常与各种框架结合,以提高开发效率和系统性能。SSH(Struts、Spring、Hibernate)框架组合就是其中...

    SSH 框架集成连接Oracle数据库的配置

    SSH框架集成连接Oracle数据库的配置是一项常见的开发任务,主要涉及Spring、Struts2和Hibernate这三个流行Java开源框架的协同工作。下面将详细讲解这个过程。 首先,SSH框架是Java Web开发中的三大神器,它们分别是...

    oa办公源码java ssh框架带mysql数据库

    标题中的“oa办公源码java ssh框架带mysql数据库”揭示了这是一个基于Java技术栈和SSH框架(Struts1、Hibernate、Spring)构建的自动化办公(OA)系统的源代码,同时集成了MySQL数据库。这个系统旨在提供一个易于...

    ssh框架完成对oracle数据库的增删查改

    在这个主题中,“ssh框架完成对oracle数据库的增删查改”指的是使用SSH框架来操作Oracle数据库,实现数据的基本CRUD(Create, Read, Update, Delete)功能。 首先,Struts2是MVC(Model-View-Controller)架构模式...

    SSH框架 投票系统源码及数据库

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是...通过研究这个"SSH框架投票系统源码及数据库",不仅可以深入理解SSH框架的工作原理,还能掌握实际开发中的问题解决技巧,为以后的Java Web开发打下坚实基础。

    SSH框架搭建源码

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个压缩包文件"SSHdemo"提供了一个SSH框架搭建登录功能的示例,帮助开发者了解并实践如何整合这三个框架来构建一个...

    博客-ssh实现mysql数据库,初学ssh的Demo

    本博客采用SSH开发,数据库是mysql,由于文件大小限制,删...这个博客是我为了练习ssh框架开发的,因此,界面很简洁,没有过多的装潢,供初学ssh开发的朋友参考。 附:用的ssh的版本 struts 1.3 hibernate 3.2 spring 2.0

    ssh框架实现登录注册 数据库自己建

    ssh框架整合实现登录注册,加载jar包,编写配置文件,数据库自己创建,ssh框架入门 还有许多要学的,只是入门知识,框架内容很多,多加理解练习

    ssh框架项目源码带数据库文件

    在这个"ssh框架项目源码带数据库文件"中,我们可以深入理解这三个框架如何协同工作,以及如何应用于实际的网上购票系统。 首先,Spring框架作为核心的依赖注入(DI)和面向切面编程(AOP)容器,它管理着应用中的...

    SSH框架实例(注册、登录+增删改查+分页)

    在SSH框架中,Hibernate负责处理SQL查询,通过ORM(对象关系映射)将Java对象转换为数据库中的记录。在这个实例中,你将看到如何定义实体类,配置Hibernate映射文件,以及如何在Service层中使用SessionFactory和...

    JavaEE +SSH框架+mysql数据库 银行业务调度管理系统项目地址.docx

    【JavaEE + SSH框架 + MySQL数据库在银行业中应用】 JavaEE是企业级应用程序开发的首选平台,它提供了丰富的API和工具来构建分布式、多层的Web应用。SSH(Struts2、Spring、Hibernate)框架组合是JavaEE开发中的...

    ssh框架整合项目,附带可用数据库

    8. **异常处理**:项目中提到了“异常”,在SSH框架下,可以统一捕获并处理异常,比如定义全局的异常拦截器,或者在Service层进行异常封装。 9. **数据库**:描述中提到"数据库添加上就可以直接运行",意味着项目...

    ssh连接两个数据库

    #### 二、SSH在数据库连接中的应用 在实际应用场景中,我们可能需要在一个服务器上通过SSH隧道安全地访问另一个服务器上的数据库资源。这种场景在分布式系统、云计算环境中尤为常见。 #### 三、案例分析:SSH连接两...

    Java SSH 框架整合,学习源码

    8. **实战经验**:在实际项目中,开发者需要关注性能优化、事务管理、异常处理等问题,这都需要对SSH框架有深入的理解。例如,合理使用Spring的AOP进行事务管理,避免Struts的性能瓶颈,以及优化Hibernate的查询性能...

Global site tag (gtag.js) - Google Analytics