现象:
在mybatis查询中有时候需要查询一张表,然后在通过这个查询出来的字段去链接另外一张表进行查询!
解决办法:
这里通过sql查询了一个对象,在通过这个对象中的id去查询了另外一张表与这个id对应的数据集合!实现了对象中有集合的一种查询!
2:实现调用存储过程查询数据!然后通过查询出来的某个字段去另外一张表中查询某个字段!需要字段对应。通过存储过程将可以实现分页查询!
<mapper namespace="com.oig.dao.AppUserDao">
<parameterMap type="java.util.Map" id="callPageParams">
<parameter property="table" jdbcType="NVARCHAR" mode="IN"/>
<parameter property="fields" jdbcType="NVARCHAR" mode="IN"/>
<parameter property="pageSize" jdbcType="INTEGER" mode="IN"/>
<parameter property="pageIndex" jdbcType="INTEGER" mode="IN"/>
<parameter property="pages" jdbcType="INTEGER" mode="OUT"/>
<parameter property="total" jdbcType="INTEGER" mode="OUT"/>
<parameter property="order_by" jdbcType="NVARCHAR" mode="IN"/>
<parameter property="else_if" jdbcType="NVARCHAR" mode="IN"/>
<parameter property="primaryKey" jdbcType="NVARCHAR" mode="IN"/>
</parameterMap>
<resultMap type="com.oig.bean.AppUserLoginInfo" id="UserLoginInfo">
<result property="tcode" column="tcode"/>
<result property="wcode" column="wcode"/>
<result property="usercode" column="usercode"/>
<result property="ip" column="ip"/>
<result property="device" column="device"/>
<result property="lastlogin" column="lastlogin"/>
<result property="logintimes" column="logintimes"/>
<result property="enddate" column="enddate"/>
<result property="token" column="token"/>
<association property="wname" column="wcode" select="findWname">
<result property="wname" column="wname"/>
</association>
</resultMap>
<select id="findUserInfo" parameterMap="callPageParams" resultMap="UserLoginInfo" statementType="CALLABLE">
{call dbo.P_Public_select(?,?,?,?,?,?,?,?,?)}
</select>
<select id="findWname" parameterType="java.lang.String" resultType="String">
select wname from wcode where wcode=#{wcode};
</select>
</mapper>