-
各位大大,谁能帮我看下我这个spring3.0 和 mybatis整合出了什么问题呀,mybatis总是行不成功,完整项目我已经放在附件中了5
附件是我的项目,可以直接在eclipse中部署运行,用的mysql数据库,只需建一个test数据库就可以,建表语句在test.rar附件中,执行的service url是:http://localhost:8080/springTest/lyang/getAll.do
每次一执行就报:
java.lang.NullPointerException
at com.lyang.springTest.daoImpl.IPeopleDao.getAllPeople(IPeopleDao.java:15)
at com.lyang.springTest.service.IPeopleService.getAll(IPeopleService.java:18)
at com.lyang.springTest.controller.IPeopleController.getAll(IPeopleController.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:244)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:237)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
iteye里面大神比较多,希望各位前辈能给我指点一下,弄了两晚上了,一直这个错误,不知道什么原因,如果不用注解改成xml手动注入bean的话就没有问题,一用注解配置文件里面改成自动扫描,mybatis就执行不成功了2014年7月29日 23:56
3个答案 按时间排序 按投票排序
-
采纳的答案
楼主,首先你web.xml有点问题,有个参数你配置了两遍,我改了。
然后 你最大的问题是 ,数据库session没有注入,见
spring-mybatis.xml
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
你把sqlSessionFactory注入给了org.mybatis.spring.SqlSessionTemplate,
而sqlSession却没有注入给你的BasicSqlSupport这个类,而BasicSqlSupport却需要给子类IPeopleDao提供sqlSession,故为空。 解决方案见下
把上面的那个<bean>删除掉,添加
<bean id="mySqlSessionFactory" class="com.lyang.springTest.util.BasicSqlSupport">
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
然后把BasicSqlSupport 改为如下
public class BasicSqlSupport {
private SqlSessionFactory sqlSessionFactory;
public SqlSession session;
public SqlSession getSqlSession() {
return session;
}
public void setSqlSession(SqlSession sqlSession) {
this.session = sqlSession;
}
public SqlSessionFactory getMySqlSessionFactory() {
return sqlSessionFactory;
}
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
this.sqlSessionFactory = sqlSessionFactory;
session = sqlSessionFactory.openSession();
}
}
当然,后者我也有问题,不够简洁,所有 还可以改下,但这样至少能解决你的问题,我的结果是
1 lyang 23
2 cchuang 23
0 user0 20
1 user1 21
2 user2 22
3 user3 23
4 user4 24
5 user5 25
6 user6 26
7 user7 27
8 user8 28
9 user9 29
不知道是不是你想要的!2014年7月30日 10:26
-
各位大大,谁能帮我看下我这个spring3.0 和 mybatis整合出了什么问题呀,mybatis总是行不成功,完整项目我已经放在附件中了。
恩,我觉得,首先不是大大,你要喊大人,这里你都错了,其次spring3.0 和 mybatis整合首先你需要下载所有的夹包,所有的夹包都下载好了,你还需要尾部容器,最后你要知道你的项目到底在哪里,打成exe放进去就可以了,你zao吗?2014年7月31日 10:50
-
注入存在问题,没有注入成功。这样试试
<context:component-scan base-package="com.lyang.springTest" /> <!-- 自动扫描所有注解该路径 -->
2014年7月30日 09:35
相关推荐
"mybatisForSpring3"这个文件名可能包含的是一个示例项目,它可能包含了Spring与myBatis整合的相关配置文件(如spring.xml、mybatis-config.xml)、Mapper接口和XML配置文件、DAO实现类以及测试代码。通过对这些文件...
在IT领域,Spring框架和MyBatis是两个非常重要的组件,它们在企业级应用开发中起着关键作用。本篇文章将深入探讨Spring 3.0、MyBatis以及Commons库的相关知识点,帮助读者理解这三者之间的整合及用途。 **Spring ...
1. **MyBatis-Spring整合**:整合MyBatis和Spring主要是为了利用Spring的依赖注入特性,将SqlSessionFactory或SqlSessionTemplate注入到Spring的Bean中,这样可以在整个应用中统一管理数据访问。通过配置Spring的...
本项目“spring3.0整合mybatis3.0、struts2”正是这样的一个尝试,旨在利用这三个主流的Java技术栈来搭建一个强大的后端架构。接下来,我们将详细探讨这三个框架各自的功能、整合的意义以及如何进行整合。 **Spring...
为了使Spring3.0能够更好地支持MyBatis3.0,需要使用`mybatis-spring-1.0.3-SNAPSHOT-bundle`这个整合包。此包解决了Spring3.0不直接支持MyBatis3.0的问题,提供了如SqlSessionFactoryBean、MapperFactoryBean等类,...
标题“springMVC_spring3.0_mybatis2.1.1整合”指的是将Spring MVC、Spring 3.0框架和MyBatis 2.1.1数据访问层进行集成的教程或项目示例。这个整合是Web开发中常见的技术栈组合,用于构建高效、灵活的Java Web应用。...
springMVC3.0 + MyBatis3.1 花了2天整合成功的DEMO Spring 用的是基于注解的 MyBatis 用的是基于XML的 带表结构 有增删改查的小例子(含事务) 个人认为这套小框架有有兴趣的人 完全可以自己修改修改, 作为自己以后...
"Struts2+Spring3.0+MyBatis3.0平台搭建"涉及的是如何将这三个框架整合在一起,创建一个完整的Web应用程序。这通常包括以下步骤: 1. 配置Struts2:设置struts.xml,定义Action、结果类型和全局配置。 2. 集成...
在本项目中,我们主要探讨的是如何将Spring MVC 3.0、MyBatis 3 和 Freemarker 2.3 这三个强大的技术框架整合在一起,以构建一个高效且灵活的Web应用程序。以下是对这些技术及其整合过程的详细说明: **Spring MVC ...
标题 "spring3.0 mvc+mybatis3.0" 提到的是一个集成Spring MVC 3.0和MyBatis 3.0的项目实例,这两大框架在Java Web开发中占据重要地位。Spring MVC是Spring框架的一部分,专门用于构建Web应用程序的前端控制器,而...
Struts2.0、Spring3.0和MyBatis3是Java Web开发中常见的三大框架,它们各自在应用程序的不同层次上发挥着重要作用。Struts2作为MVC(模型-视图-控制器)框架,主要负责处理请求和控制业务流程;Spring则是一个全面的...
在Java开发领域,Spring、SpringMVC和MyBatis是三个非常重要的开源框架,它们各自在不同的层次上解决了Web应用中的问题。Spring作为全面的框架,提供了依赖注入(DI)和面向切面编程(AOP)等核心特性;SpringMVC是...
这个压缩包提供了这三个框架的整合源码和相关文档,对于学习和理解SSM(Struts2、Spring、MyBatis)框架的集成具有很高的参考价值。 首先,Struts2是基于MVC设计模式的Action框架,它在Web层负责处理用户的请求,...
本话题主要关注的是"Spring 3.0"、"Struts 2" 和 "MyBatis 3.0" 这三大主流Java开源框架的集成,以实现增、删、查、改(CRUD)以及LIKE查询等基本功能。下面我们将详细探讨这些框架各自的功能以及它们如何协同工作。...
4. **Spring与MyBatis整合**:Spring MyBatis教程会讲解如何将Spring的依赖注入和事务管理与MyBatis的SQL映射相结合,实现更灵活的数据访问。这包括配置MyBatis的SqlSessionFactory,创建Mapper接口,以及使用`@...
SSM框架整合,使用最新版MyBatis-Jar包(Struts2.1+Spring3.0+MyBatis3.06) 下载之后执行.sql文件创建表和sequence 记得改数据库访问地址以及数据库登录用户名密码 项目访问路径 localhost:8080/SSI_Demo2 一个...
在Java开发领域,Spring框架和MyBatis是一个常见的组合,它们各自在应用程序的不同层面上发挥着重要作用。Spring提供了一个全面的编程和配置模型,包括依赖注入、事务管理、AOP(面向切面编程)等,而MyBatis则是一...
在整合MyBatis时,Spring Boot会自动配置MyBatis的相关组件,如SqlSessionFactory、MapperScannerConfigurer等,这样我们就不需要像传统方式那样手动编写大量的配置代码。 1. **添加依赖**:在Spring Boot项目中,...
mybatis3.0+spring3.0+struts2整合开发的一个小权限管理系统,里面有搜索提示功能,导入导出excel文件,ajax异步刷新,拦截器控制,freemarker等,表关系很复杂,特附上表关系图
通过以上步骤,MyBatis和Spring就能成功整合,开发者可以在不编写任何DAO类的情况下,直接使用Mapper接口进行数据库操作。这种方式提高了代码的可读性和可维护性,同时也使得业务逻辑与数据访问层分离,符合Spring...