mybatis利用example檔案進行異表欄位模糊查詢
1.首先建立一個po表
po表中 新增不是本表的資料
例如
public class UserInfoPo extends UserInfo {
private String deptId;//部門id
private String uid;//使用者id
private String dept;//部門
private String position;//部門的職位
public String getDeptId() {
return deptId;
}
}
在example檔案中新增 模糊查詢用到的欄位
public class UserInfoExample {
private String position;//部門的職位
}
在xml檔案中
對映欄位
<resultMap id="BaseResultMap1" type="com.integral.po.UserInfoPo" extends="BaseResultMap">
<result column="uid" property="uid" jdbcType="VARCHAR" />
<result column="dept" property="dept" jdbcType="VARCHAR" />
<result column="position" property="position" jdbcType="VARCHAR"/>
</resultMap>
並且寫出sql
<select id="selectUserByExample" resultMap="BaseResultMap1" parameterType="com.integral.entity.UserInfoExample" >
select u.*,d.* from t_userinfo u,t_user_dept d
<!-- <if test="_parameter != null" >
<include refid="Example_Where_Clause" />
</if> -->
where u.id = d.uid
<if test="position != null" > <!--此處的position 與 example和po中的欄位一致-->
and d.position like #{position,jdbcType=VARCHAR}
<!--d.position 是欄位名字 -->
</if>
<if test="orderByClause != null" >
order by ${orderByClause}
</if>
</select>
在mapper檔案中
寫出方法:
/**
* 根據部門的模糊查詢獲取所有使用者
* @description:
* @author:xuzn
* @date:2017-2-13 上午9:41:52
* @modify:
* @param example
* @return
* @version:
*
*/
List<UserInfoPo> selectUserByExample(UserInfoExample example);
在serviceImpl中 方法如下:
/**
* 模糊查詢獲取使用者
*/
@Override
public List<UserInfoPo> selectUserByExample(UserInfoPo po) {
UserInfoExample example = new UserInfoExample();
Criteria criteria = example.createCriteria();
//判斷 欄位是否為空 由po獲取傳過來的資料
if(StringUtils.hasText(po.getPosition())){
//example檔案中 將 position賦值
example.setPosition("%"+po.getPosition()+"%");
}
List<UserInfoPo> list = userInfoMapper.selectUserByExample(example);
if (list.size()>0) {
return list;
}else {
return null;
}
}
controller層 方法 如下:
@RequestMapping("selectUserByExample")
@ResponseBody
public LBResult selectUserByExample(UserInfoPo po,
HttpServletRequest request,
HttpServletResponse response) {
List<UserInfoPo> list = userInfoService.selectUserByExample(po);
try {
if (list.size()>0) {
return LBResult.build(400, "成功", list);
}else {
return LBResult.build(404, "失敗");
}
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage());
return LBResult.build(500, ExceptionUtil.getStackTrace(e));
}
}
相關文章
- mybatis xml 檔案中like模糊查詢MyBatisXML
- 請問mysql裡面的text欄位怎麼進行模糊查詢MySql
- MyBatis模糊查詢LIKEMyBatis
- mybatis - [07] 模糊查詢MyBatis
- MySQL簡單實現多欄位模糊查詢MySql
- SQL“多欄位模糊匹配關鍵字查詢”SQL
- mybatis做like模糊查詢MyBatis
- Mybatis各種模糊查詢MyBatis
- 根據欄位名查詢所有表
- mybatis-模糊查詢like CONCATMyBatis
- Mybatis中Oracle的拼接模糊查詢MyBatisOracle
- Mybatis模糊查詢結果為空MyBatis
- mybatis 對特殊字元的模糊查詢MyBatis字元
- 使用Excel進行快速模糊查詢的方法Excel
- clob 欄位查詢
- SQL Server 查詢表註釋和欄位SQLServer
- 揭秘PostgreSQL:如何查詢表欄位名稱SQL
- Mybatis框架:foreach迴圈遍歷欄位(為了解決動態表、動態欄位查詢資料)MyBatis框架
- 查詢oracle表的資訊(表,欄位,約束,索引)Oracle索引
- [Mysql 查詢語句]——查詢欄位MySql
- 小程式雲開發模糊查詢,實現資料庫多欄位的模糊搜尋資料庫
- sqlserver查詢一個庫所有表的欄位名及欄位型別SQLServer型別
- Mybatis中模糊查詢的各種寫法MyBatis
- MyBatis 多表聯合查詢,欄位重複的解決方法MyBatis
- 【PHP】關於fastadmin框架中使用with進行連表查詢時setEagerlyType欄位的理解PHPAST框架
- 報表怎麼做模糊查詢
- 查詢表上的索引及對應的欄位索引
- 在 with 查詢中只查詢個別欄位
- mybatis多條件的模糊查詢解決方案MyBatis
- lucene 多欄位查詢-MultiFieldQueryParser
- Mybatis學習01:利用mybatis查詢資料庫MyBatis資料庫
- mysql sql同一個欄位多個行轉成一個欄位查詢MySql
- linux 中根據檔案的大小進行檔案的查詢Linux
- sqlserver新增查詢 表、欄位註釋,組合查詢所有的使用者、表名、表註釋SQLServer
- 同一張表的兩個欄位比較查詢
- SQL2005查詢表中欄位的描述SQL
- sqlserver查詢一張表所有欄位是否含製表符、換行符、回車符SQLServer
- Elasticsearch 複合查詢——多字串多欄位查詢Elasticsearch字串