配置分以下几种情况,红色部分根据自己情况编写自己代码
第一种:参数为对象,返回值为map
<resultMap id="resultMap1" type="返回对象1">
<result column="column1" property="column1"/>
<result column="column2" property="column2"/>
<result column="column3" property="column3"/>
<result column="column4" property="column4"/>
</resultMap>
<select id="getProcudure" parameterType="对象1" resultMap="resultMap1" statementType="CALLABLE">
<![CDATA[
{call 存储过程名称(#{参数1,model=IN,jdbcType=VARCHAR})}
]]>
</select>
第二种:参数为Map,返回值为map
<resultMap id="resultMap1" type="返回对象1">
<result column="column1" property="column1"/>
<result column="column2" property="column2"/>
<result column="column3" property="column3"/>
<result column="column4" property="column4"/>
</resultMap>
<select id="getProcudure" parameterType="Map" resultMap="resultMap1" statementType="CALLABLE">
<![CDATA[
{call 存储过程名称(#{参数1,model=IN,jdbcType=VARCHAR})}
]]>
</select>
第三种:参数为String,返回值为map
<resultMap id="resultMap1" type="返回对象1">
<result column="column1" property="column1"/>
<result column="column2" property="column2"/>
<result column="column3" property="column3"/>
<result column="column4" property="column4"/>
</resultMap>
<select id="getProcudure" parameterType="String" resultMap="resultMap1" statementType="CALLABLE">
<![CDATA[
{call 存储过程名称(#{参数1,model=IN,jdbcType=VARCHAR})}
]]>
</select>
注意:蓝色部分必须大写,并且能对应下面的jdbcType类型,mybatics不用写out这些参数,只写IN参数就行,写上或报错误参数超出范围.另外存储过程返回必须与resultMap字段对应。
- JDBC Type Java Type
- CHAR String
- VARCHAR String
- LONGVARCHAR String
- NUMERIC java.math.BigDecimal
- DECIMAL java.math.BigDecimal
- BIT boolean
- BOOLEAN boolean
- TINYINT byte
- SMALLINT short
- INTEGER int
- BIGINT long
- REAL float
- FLOAT double
- DOUBLE double
- BINARY byte[]
- VARBINARY byte[]
- LONGVARBINARY byte[]
- DATE java.sql.Date
- TIME java.sql.Time
- TIMESTAMP java.sql.Timestamp
- CLOB Clob
- BLOB Blob
- ARRAY Array
- DISTINCT mapping of underlying type
- STRUCT Struct
- REF Ref
- DATALINK java.net.URL[color=red][/color]