在上一篇的博文中,也有用到等值查询,这里做详细的介绍。
对于初学者来说,等值查询经常使用到,对于理解关联查询也有帮助。
对于初学者来说,等值查询经常使用到,对于理解关联查询也有帮助。
在等值查询中建议设置一个标志位,来判断这次请求是否需要等值查询
model ComCase
/**
* 关联标志
*/
private String caseFlag;
/**
* 公司名称(需查询的字段)
*/
private String companyName;
sql形式
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gzduanxun.linkms.com_case.mapper.ComCaseMapper">
<!-- common get All SQL -->
<select id="getAll" parameterType="ComCase" resultType="ComCase">
<include refid="getAllData"/>
FROM com_case T
<if test="caseFlag != null and caseFlag !=''">
, company_info t2
</if>
<include refid="getDataOfWhere"/>
</select>
<!-- common get all data sql -->
<sql id="getAllData">
SELECT
<if test="caseFlag != null and caseFlag !=''">
t2.companyName,
</if>
T.id id,
T.company_id companyId,
</sql>
<!-- common get data of where sql -->
<sql id="getDataOfWhere">
<where>
<if test="caseFlag != null and caseFlag !=''">
and T.company_id = t2.id
</if>
<if test="companyId != null">
and T.company_id = #{companyId}
</if>
</where>
</sql>
</mapper>
action
//前端传过来的数据封装在webObj中
private String webObj
try {
// 设置分页信息
webObj.setPageInfo(getPage(), getRows());
// 设置初始关联
webObj.setCaseFlag(Constants.IS_EXIST_FLAG);
list = comCaseService.getAll(webObj);
for(ComCase c : list){
c.getCompanyName();
}
}
}