论坛首页 Java版

使用spring+ibatis,做单元测试的时候很慢

浏览 1095 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2008-01-22 关键字: ibatis
框架:spring+ibatis,做单元测试的时候,发现速度很慢(大概需要半分钟的时间)
以下是相关代码:
JUnit 测试代码:


	public void testInsert() {

		IContactPersonDAO iContactPersonDAO = (IContactPersonDAO) factory
				.getBean("contactPersonDao");
		System.out.println(iContactPersonDAO.toString());	  List<ContactPerson> resultList = iContactPersonDAO.getAll();
		System.out.println(resultList.get(0).getName());
		assertEquals(resultList.size(),1);

	}


其中,System.out.println(iContactPersonDAO.toString());很快就把信息打到控制台,
但是System.out.println(resultList.get(0).getName());信息需要大概30秒才能出来,不知道怎么回事

我用的是DBCP连接池,配置没有问题,下边是该查询对应的sql文件:

	<select id="select" resultClass="contactperson">
		select * from contactperson
	</select>



因为可以查询出结果,所以我认为流程没有问题,一开始怀疑是连接池配置有问题,后来改用C3P0还是一样,不知道怎么回事。
   
时间:2008-01-22
我又试了几次,发现有时候查询时间竟然有2分钟!!
   
0 请登录后投票
时间:2008-01-22
contactperson表里面数据太多了吧?导致getAll()花费了太多时间构建对象
   
0 请登录后投票
时间:2008-01-22
Quake Wang 写道
contactperson表里面数据太多了吧?导致getAll()花费了太多时间构建对象

contactperson表里边只有一条记录
下边是我连接池的配置信息:
<bean id="dataSource"
		class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass"
			value="${jdbc.driverClassName}" />
		<property name="jdbcUrl" value="${jdbc.url}" />
		<property name="user" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>
	
   
0 请登录后投票
时间:2008-01-22
现在的问题是我根本不知道从哪里开始入手来解决问题,以前很少做单元测试,不会和Junit用关吧
   
0 请登录后投票
时间:2008-01-22
没关连接?
   
0 请登录后投票
时间:2008-01-22
抛出异常的爱 写道
没关连接?

我已经设置了destroy-method="close" ,应该是Spring容器关闭时,数据源就可以正常关闭。不需要我程序控制吧
   
0 请登录后投票
时间:2008-01-22
supernaturalmagician 写道
抛出异常的爱 写道
没关连接?

我已经设置了destroy-method="close" ,应该是Spring容器关闭时,数据源就可以正常关闭。不需要我程序控制吧


ibites的本身不可能出2分钟这种事的.
我以前见过web应用与toad同时访问数据库同一条记录被卡的事件.
你把sql拷到数据库软件上跑一下...如果不慢
再看你的ibites配置是否有问题.
   
0 请登录后投票
时间:2008-01-22
抛出异常的爱 写道
supernaturalmagician 写道
抛出异常的爱 写道
没关连接?

我已经设置了destroy-method="close" ,应该是Spring容器关闭时,数据源就可以正常关闭。不需要我程序控制吧


ibites的本身不可能出2分钟这种事的.
我以前见过web应用与toad同时访问数据库同一条记录被卡的事件.
你把sql拷到数据库软件上跑一下...如果不慢
再看你的ibites配置是否有问题.



我也是用的toad,不过像你说的那种可能行比较小,我刚才注销了一下系统,没有启动toad,直接在命令行下运行sql,速度很快,但是用junit测试,就"死了"
如图:
  • 7126603b-b890-3f03-8096-44da9f6c48cc-thumb
  • 描述: 一直在运行
  • 大小: 121.2 KB
   
0 请登录后投票
时间:2008-01-22
ibatis配置?能不能说的具体点,我以前也用sprng+ibatis开发过项目,不知道这次怎么就突然不行了,上图的状态现在可以持续很长时间...
   
0 请登录后投票
论坛首页 Java版

跳转论坛: