parameterclass(ibatIS中的parameterClass)
一、ibatis配置文件中parameterClass指的是参数类型还是参数名
1. parameterClass是你要传进来的参数的类型(通常可以是Map对象,也可以是基础数据类型)
2. resultMap也是你要返回的值类型(一般是对象,参考例子),从命名上就可以发现传进来的是一个Map对象,如果要用的话,要先定义。
<resultMap id="xxxxx" class="POJO(比如com.test.A)">
<result column="ID" property="Id" jdbcType="DECIMAL"/>
<result column="Name" property="Name" jdbcType="varchar"/>
</resultMap>
注意:前面的column出现的字段,sql语句中要出现,并且这些字段对应的类属性必须一致。
之所以采用这个,是因为,很多连表查询,查询出来的结果不一定是一条或者一个已存在的pojo,这个时候就要重新定义一个来接收。
3. resultClass某张表对应的pojo或者一个字段,一个数字,可以能是某张表对应的pojo的list集合
二、Ibatis resultmap 与select 字段多少的问题
如下:resultMap<resultMap id="userResult" class="com.eclink.uc.user.vo.UserVO"><result column="USER_ID" property="userId" jdbcType="NUMBER" nullValue="0"/><result column="LOGIN_NAME" property="loginName" jdbcType="VARCHAR" nullValue=""/><result column="REAL_NAME" property="realName" jdbcType="VARCHAR" nullValue=""/><result column="STATUS" property="status" jdbcType="VARCHAR" nullValue=""/><result column="TELEPHONE" property="telephone" jdbcType="VARCHAR" nullValue=""/><result column="EMAIL" property="email" jdbcType="VARCHAR" nullValue=""/><result column="CREATE_DATE" property="createDate" jdbcType="TIMESTAMP" nullValue=""/><result column="SEX" property="sex" jdbcType="TIMESTAMP" nullValue=""/><result column="MOBILE" property="mobile" jdbcType="TIMESTAMP" nullValue=""/><result column="DEFAULT_ORG_ID" property="defaultOrgId" jdbcType="NUMBER" nullValue="0"/><result column="DEFAULT_SYSTEM_CODE" property="defaultSystemCode" jdbcType="VARCHAR" nullValue=""/></resultMap>�0�2select语句如下:<select id="getUserById" resultMap="userResult" parameterClass="int"><![CDATA[ select to_char(create_date,'YYYY-MM-DD') as CREATE_DATE,STATUS,REAL_NAME,LOGIN_NAME,CREATE_USER,USER_ID,SEX,TELEPHONE,MOBILE,EMAIL,to_char(last_update_date,'YYYY-MM-DD') as LAST_UPDATE_DATE,DEFAULT_ORG_ID from UC_USER where USER_ID=#userId:NUMBER# ]]></select>�0�2即select中没有DEFAULT_SYSTEM_CODE字段出来,运行的时候会报错也就是说SELECT中查出的字段数要大于或等于resultMap的了数量这样要注意了,如果原来写好的resultMap与select是一一对应的,那么维护的时候最好不要直接在原来的resultMap上加一个字段,因为可能多个select语句引用了该resultMap最好的方法就是写一个resultMap继承自上面的resultMap,然后写一个select�0�2