Skip to content

Commit 1f548b6

Browse files
committed
Lots of SP tests/examples with annotations
1 parent c0ab206 commit 1f548b6

File tree

3 files changed

+540
-15
lines changed

3 files changed

+540
-15
lines changed

src/test/java/org/apache/ibatis/submitted/sptests/SPMapper.java

Lines changed: 90 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,99 @@
33
import java.util.List;
44
import java.util.Map;
55

6+
import org.apache.ibatis.annotations.Options;
7+
import org.apache.ibatis.annotations.Result;
8+
import org.apache.ibatis.annotations.ResultMap;
9+
import org.apache.ibatis.annotations.Results;
10+
import org.apache.ibatis.annotations.Select;
11+
import org.apache.ibatis.annotations.Update;
12+
import org.apache.ibatis.mapping.StatementType;
13+
614
public interface SPMapper {
7-
Object adder(Parameter parameter);
8-
void adder2(Parameter parameter);
9-
void adder3(Map<String, Object> parameter);
15+
// XML based
16+
Object adderAsSelect(Parameter parameter);
17+
void adderAsUpdate(Parameter parameter);
18+
void adderWithParameterMap(Map<String, Object> parameter);
1019
Name getName(Integer id);
1120
List<Name> getNames(Map<String, Object> parms);
1221
List<Name> getNamesWithArray(Map<String, Object> parms);
1322
List<List<?>> getNamesAndItems();
23+
24+
// annotated
25+
@Select({"{call sptest.adder(",
26+
"#{addend1,jdbcType=INTEGER,mode=IN},",
27+
"#{addend2,jdbcType=INTEGER,mode=IN},",
28+
"#{sum,jdbcType=INTEGER,mode=OUT})}"
29+
})
30+
@Options(statementType=StatementType.CALLABLE)
31+
Object adderAsSelectAnnotated(Parameter parameter);
32+
33+
@Update({"{call sptest.adder(",
34+
"#{addend1,jdbcType=INTEGER,mode=IN},",
35+
"#{addend2,jdbcType=INTEGER,mode=IN},",
36+
"#{sum,jdbcType=INTEGER,mode=OUT})}"
37+
})
38+
@Options(statementType=StatementType.CALLABLE)
39+
void adderAsUpdateAnnotated(Parameter parameter);
40+
41+
@Select("{call sptest.getname(#{id,jdbcType=INTEGER,mode=IN})}")
42+
@Results({
43+
@Result(column="ID", property="id"),
44+
@Result(column="FIRST_NAME", property="firstName"),
45+
@Result(column="LAST_NAME", property="lastName")
46+
})
47+
@Options(statementType=StatementType.CALLABLE)
48+
Name getNameAnnotated(Integer id);
49+
50+
@Select("{call sptest.getname(#{id,jdbcType=INTEGER,mode=IN})}")
51+
@ResultMap("nameResult")
52+
@Options(statementType=StatementType.CALLABLE)
53+
Name getNameAnnotatedWithXMLResultMap(Integer id);
54+
55+
@Select({"{call sptest.getnames(",
56+
"#{lowestId,jdbcType=INTEGER,mode=IN},",
57+
"#{totalRows,jdbcType=INTEGER,mode=OUT})}"
58+
})
59+
@Results({
60+
@Result(column="ID", property="id"),
61+
@Result(column="FIRST_NAME", property="firstName"),
62+
@Result(column="LAST_NAME", property="lastName")
63+
})
64+
@Options(statementType=StatementType.CALLABLE)
65+
List<Name> getNamesAnnotated(Map<String, Object> parms);
66+
67+
@Select({"{call sptest.getnames(",
68+
"#{lowestId,jdbcType=INTEGER,mode=IN},",
69+
"#{totalRows,jdbcType=INTEGER,mode=OUT})}"
70+
})
71+
@ResultMap("nameResult")
72+
@Options(statementType=StatementType.CALLABLE)
73+
List<Name> getNamesAnnotatedWithXMLResultMap(Map<String, Object> parms);
74+
75+
@Select({"{call sptest.arraytest(",
76+
"#{ids,mode=IN,jdbcType=ARRAY,typeHandler=org.apache.ibatis.submitted.sptests.ArrayTypeHandler},",
77+
"#{requestedRows,jdbcType=INTEGER,mode=OUT},",
78+
"#{returnedIds,mode=OUT,jdbcType=ARRAY,typeHandler=org.apache.ibatis.submitted.sptests.ArrayTypeHandler})}"
79+
})
80+
@Results({
81+
@Result(column="ID", property="id"),
82+
@Result(column="FIRST_NAME", property="firstName"),
83+
@Result(column="LAST_NAME", property="lastName")
84+
})
85+
@Options(statementType=StatementType.CALLABLE)
86+
List<Name> getNamesWithArrayAnnotated(Map<String, Object> parms);
87+
88+
@Select({"{call sptest.arraytest(",
89+
"#{ids,mode=IN,jdbcType=ARRAY,typeHandler=org.apache.ibatis.submitted.sptests.ArrayTypeHandler},",
90+
"#{requestedRows,jdbcType=INTEGER,mode=OUT},",
91+
"#{returnedIds,mode=OUT,jdbcType=ARRAY,typeHandler=org.apache.ibatis.submitted.sptests.ArrayTypeHandler})}"
92+
})
93+
@ResultMap("nameResult")
94+
@Options(statementType=StatementType.CALLABLE)
95+
List<Name> getNamesWithArrayAnnotatedWithXMLResultMap(Map<String, Object> parms);
96+
97+
@Select("{call sptest.getnamesanditems()}")
98+
@ResultMap("nameResult,itemResult")
99+
@Options(statementType=StatementType.CALLABLE)
100+
List<List<?>> getNamesAndItemsAnnotatedWithXMLResultMap();
14101
}

src/test/java/org/apache/ibatis/submitted/sptests/SPMapper.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,23 +35,23 @@
3535
and/or resultType is usually not used.
3636
-->
3737

38-
<select id="adder" parameterType="org.apache.ibatis.submitted.sptests.Parameter" statementType="CALLABLE">
38+
<select id="adderAsSelect" parameterType="org.apache.ibatis.submitted.sptests.Parameter" statementType="CALLABLE">
3939
{call sptest.adder(
4040
#{addend1,jdbcType=INTEGER,mode=IN},
4141
#{addend2,jdbcType=INTEGER,mode=IN},
4242
#{sum,jdbcType=INTEGER,mode=OUT}
4343
)}
4444
</select>
4545

46-
<update id="adder2" parameterType="org.apache.ibatis.submitted.sptests.Parameter" statementType="CALLABLE">
46+
<update id="adderAsUpdate" parameterType="org.apache.ibatis.submitted.sptests.Parameter" statementType="CALLABLE">
4747
{call sptest.adder(
4848
#{addend1,jdbcType=INTEGER,mode=IN},
4949
#{addend2,jdbcType=INTEGER,mode=IN},
5050
#{sum,jdbcType=INTEGER,mode=OUT}
5151
)}
5252
</update>
5353

54-
<update id="adder3" parameterMap="testParameterMap" statementType="CALLABLE">
54+
<update id="adderWithParameterMap" parameterMap="testParameterMap" statementType="CALLABLE">
5555
{call sptest.adder(?, ?, ?)}
5656
</update>
5757

0 commit comments

Comments
 (0)