package com.taobao.tddl.qatest.group;
import java.sql.CallableStatement;
import java.sql.SQLException;
import java.sql.Types;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.CallableStatementCallback;
/**
* 存储过程进行测试
* <p/>
* Created Date: 2010-12-10 下午03:28:43
*/
public class GroupProcedureTest extends GroupTestCase {
@Test
public void testProcedure() {
// 调用存过删除moddbtab_0000数据,无参
String sql = "{call DELETE_DATA()}";
tddlJT.execute(sql, new CallableStatementCallback() {
@Override
public Object doInCallableStatement(CallableStatement arg0) throws SQLException, DataAccessException {
arg0.execute();
return null;
}
});
// 调用存过插入100条数据,参数为插入次数
String sql2 = "{call INSERT_DATA(?)}";
tddlJT.execute(sql2, new CallableStatementCallback() {
@Override
public Object doInCallableStatement(CallableStatement arg0) throws SQLException, DataAccessException {
arg0.setInt(1, 100);
arg0.execute();
return null;
}
});
// 调用存过返回100条数据pk和(1...100),正确结果应该为5050
String sql3 = "{call GET_PK_SUM_PROC(?)}";
Object x = tddlJT.execute(sql3, new CallableStatementCallback() {
@Override
public Object doInCallableStatement(CallableStatement arg0) throws SQLException, DataAccessException {
arg0.registerOutParameter(1, Types.INTEGER);
arg0.execute();
return arg0.getInt(1);
}
});
Assert.assertEquals(5050, x);
// 清理数据
tddlJT.execute(sql, new CallableStatementCallback() {
@Override
public Object doInCallableStatement(CallableStatement arg0) throws SQLException, DataAccessException {
arg0.execute();
return null;
}
});
}
}