### 三、实例参考集锦
默认输入模式IN
{ call proc_test_insert ( ? ) } //仅是输入值,需要用数组方式赋值
{ call proc_test_insert ( #{name} ) } // 默认IN输入模式
{ call proc_test_insert ( #{name | OUT | VARCHAR} ) } //参数类型也可以明确指出。当然,默认为Java_Object就足够了,一般情况下无需要指出。
{ call proc_test_insert ( #{name | INOUT } ) }
{ call proc_test_insert ( 123, 456, #{name} ) }
{ call proc_test_insert ( 123, 456, #{name1}, #{name2}, #{name3 | OUT} ) }
{ ?= call func100 ( 123, 456 ) } // 默认返回值名称 return
{ #{myname} = call func100 ( 123, 456, ) } //返回值名称 myname
import java.util.Arrays;
import java.util.List;
import cn.cantong.mlink.MLinkClient;
import cn.cantong.mlink.MLinkTemplate;
import cn.cantong.mlink.exception.DataAccessException;
import cn.cantong.mlink.mo.ResultMo;
public class TestTemplateProc {
private static String HTTP_BASE = "http://localhost:8080";
private MLinkTemplate mlinktemplate = null;
public TestTemplateProc() {
MLinkClient mlinkclient = new MLinkClient(HTTP_BASE);
this.mlinktemplate = new MLinkTemplate(mlinkclient);
}
public void test0() throws DataAccessException {
System.out.println("-------------------------------");
ResultMo rm = mlinktemplate.procedure("{call proc0()}");
if (rm != null) {
System.out.println(">>"+rm);
}
}
public void test2() throws DataAccessException {
System.out.println("------------------------------- 两个输出参数");
ResultMo rm = mlinktemplate.procedure("{call proc2( #{ count |OUT }, #{ aa | INOUT } )}");
if (rm != null) {
System.out.println("count>>"+rm.getParameter("count"));
System.out.println("aa>>"+rm.getParameter("aa"));
}
}
public void test5() throws DataAccessException {
System.out.println("------------------------------- 三个输入两个输出参数");
ResultMo rm = mlinktemplate.procedure("{call proc5( 123, 66666666, 45.32, #{ oo1 }, #{ oo2 } )}");
if (rm != null) {
System.out.println(">>"+rm);
System.out.println("oo1>>"+rm.getParameter("oo1"));
System.out.println("oo2>>"+rm.getParameter("oo2"));
List<Object[]> list = rm.getList();
for (Object[] objs : list) {
System.out.println(">>"+Arrays.toString(objs));
}
}
}
public static void main(String[] args) {
try {
new TestTemplateProc().test0();
new TestTemplateProc().test2();
new TestTemplateProc().test5();
} catch (DataAccessException e) {
e.printStackTrace();
}
}
}