test-spring4+mybatis3整合 junit测试的问题

问题描述

spring4+mybatis3整合 junit测试的问题
applicationContext.xml

    <context:component-scan base-package=""com""/>     <bean id=""propertyConfigurer"" class=""org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"">          <property name=""locations"">              <list>                  <value>classpath:jdbc.properties</value>              </list>          </property>      </bean>     <bean id=""dataSource"" class=""org.apache.commons.dbcp.BasicDataSource"" destroy-method=""close"">        <property name=""driverClassName"" value=""${driverClassName}""/>        <property name=""url"" value=""${url}""/>        <property name=""username"" value=""${username}""/>        <property name=""password"" value=""${password}""/>    </bean>    <!--  sessionFactory 配置-->    <bean id=""sqlSessionFactory"" class=""org.mybatis.spring.SqlSessionFactoryBean"">    <property name=""dataSource"">        <ref bean=""dataSource"" />    </property>    <property name=""mapperLocations"" value=""classpath:com/zhikun/bean/basexml/*.xml""/>    <property name=""configLocation"" value=""classpath:SqlMapConfig.xml""/>    </bean>    <bean id=""sqlSessionTemplate"" class=""org.mybatis.spring.SqlSessionTemplate"" >        <constructor-arg index=""0"" ref=""sqlSessionFactory"" />        <constructor-arg index=""1"" value=""BATCH"" />     </bean>    <bean id=""baseDao"" class=""com.zhikun.dao.base.BaseDaoImpl2"">        <property name=""sqlSessionTemplate"" ref=""sqlSessionTemplate""></property>    </bean>     <tx:annotation-driven />    mybatis.xml    <configuration>

basedao

public class BaseDaoImpl2 implements IBaseDao {

public SqlSessionTemplate sqlSessionTemplate;public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {    this.sqlSessionTemplate = sqlSessionTemplate;}@Overridepublic int save(T t) {    return sqlSessionTemplate.insert(""com.zhikun.bean.Person.save"" t);}

Test类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={""classpath:applicationContext.xml""})
public class TestDao extends AbstractJUnit4SpringContextTests {
@Test
public void save(){
PersonDao persondao = new PersonDao();
Person p = new Person();
p.setName(""zhouhang"");
p.setNickname(""周航"");
p.setSeqce(123L);
p.setBirthday(new Date());
//sqlSessionTemplate.insert(""com.zhikun.bean.Person.save"" p);
persondao.save(p);
}
}

}

解决方案

yichangcuowu

java.lang.NullPointerException
at com.zhikun.dao.base.BaseDaoImpl2.save(BaseDaoImpl2.java:25)
at com.test.zhouhang.TestDao.save(TestDao.java:31)
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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:233)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:87)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:176)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

时间: 2024-08-03 00:34:18

test-spring4+mybatis3整合 junit测试的问题的相关文章

mybatis spring 整合 junit测试。 事务不起作用,不提交。删除无效???

问题描述 mybatis spring 整合 junit测试. 事务不起作用,不提交.删除无效??? applicationContext.xml 中的数据库和 sessionFactory以及事务配置 Xml代码 <bean id="bssDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <!-- Connec

spring/mybatis整合,junit测试报BeanCreationException

问题描述 昨天想整合下springmvc和mybatis,用junit写了个测试,测试过程中,mybatis的mapper无法注入,报BeanCreationException,相关信息大家看下,帮小弟解决下 1 错误堆栈信息    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.hft.dal.mapper.AccountMapperTest': Inject

mybatis spring 整合 junit测试。 事务不起作用,不提交。插入无效???

问题描述 applicationContext.xml 中的数据库和 sessionFactory以及事务配置<bean id="bssDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><!-- Connection Info --><property name="driverClassNam

spring4.14+hibernate4.3整合,web运行正常,junit测试报错;

问题描述 spring4.14+hibernate4.3整合,web运行正常,junit测试报错: 之前web启动的时候也报这个错误,然后在web.xml里面加了这个filter,就好了. 可是现在用junit测试,没办法读取web.xml里面的配置,所以还报了这个错, 别问我为什么要junit测试,就是想知道 junit测试的时候这种情况怎么解决. 下面附代码 SpringOpenSessionInViewFilterorg.springframework.orm.hibernate4.sup

MyBatis学习教程(八)-Mybatis3.x与Spring4.x整合图文详解_java

一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: 复制代码 代码如下: mvn archetype:create -DgroupId=me.gacl -DartifactId=spring4-mybatis3 -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false 如下图所示: 创建好的项目如下: 编辑pom.xml文件 <project xmlns="http://maven.apac

图片-Java SSH整合框架.tomcat能正常跑,没问题.用junit测试却报配置错误.

问题描述 Java SSH整合框架.tomcat能正常跑,没问题.用junit测试却报配置错误. 配置如第一张图. 报错如下面两张. new ClassPathXmlApplicationContext("applicationContext.xml");junit初始化配置时出现的问题.最后导致beanFactory.containsBean("Sys_UserDao")为fasle 解决方案 不是已经说了没有引人hibernate属性文件啊, 解决方案二: 你的

junit-搭建SSM框架进行JUnit测试spring和mybatis整合

问题描述 搭建SSM框架进行JUnit测试spring和mybatis整合 log4j:WARN No such property [converssionPattern] in org.apache.log4j.PatternLayout. log4j:WARN No such property [macFileSize] in org.apache.log4j.RollingFileAppender. [org.springframework.beans.factory.xml.XmlBea

项目ITP(六) spring4.0 整合 Quartz 实现动态任务调度

正文  spring4.0 整合 Quartz 实现任务调度.这真是期末项目的最后一篇,剩下到暑假吧.    Quartz 介绍   Quartz is a full-featured, open source job scheduling service that can be integrated with, or used along side virtually any Java application - from the smallest stand-alone applicatio

spring 整合 junit

这两天做Web开发,发现通过Spring进行对象管理之后,做测试变得复杂了.因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得.如果每次都要整个业务流做的差不多了再去测试,这样效率很低,也很麻烦.如果单独去写一个测试用类,这样太繁琐了.于是想起Spring有一个测试框架,能够整合JUnit进行测试,于是便拿出来试试~ 注意 本人使用的 是spring 4.04 ,junit 使用4.4.使用高版本的junit会报错java.lang