@Mapper
public interface TableSearchMapper {
@Select("call sp_XTBCX(#{tableName,mode=IN,jdbcType=VARCHAR},'','',#{result,mode=OUT,jdbcType=CURSOR,javaType=ResultSet,resultMap=result})")
@Results(id = "result")
@Options(statementType= StatementType.CALLABLE )
public List<Map<String,Object>> tableSearch(@Param("tableName")String tableName,@Param("result")List<Map<String,Object>> result);
}
存储过程是输入表名后输出经过处理的全集,所以列名是不确定的,想写一个动态的方法,通过网上搜索XML形式在配置中将的type属性设置成HashMap可以实现,但是由于现在工程中所有Mapper都是基于注解形式的,但是@Results没有type属性
还有一点疑惑是:TableSearchMapper这个方法,返回值是否可以是void,是将Map参数传进来之后return Map参数还是return 这个方法的返回值?
不知道你这个问题是否已经解决, 如果还没有解决的话:<resultMap id="TestAaa" type="cn.stu.bestcxx.entity.Test">
<id column="name_a" jdbcType="INTEGER" property="nameA" />
<result column="name_b" jdbcType="VARCHAR" property="nameB" />
<result column="name_c" jdbcType="BIT" property="nameC" />
</resultMap>
resultMap="TestAaa",结果自动转为实体,resultType="map"结果就是map类型的
<select id="getById" parameterType="java.lang.Integer" resultMap="Test">
select
<include refid="columns" />
from test
where name_a = #{nameA,jdbcType=INTEGER}
</select>