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
- MyBatis模糊查詢LIKEMyBatis
- mybatis - [07] 模糊查詢MyBatis
- MySQL簡單實現多欄位模糊查詢MySql
- mybatis-模糊查詢like CONCATMyBatis
- 查詢資料庫表及表欄位資料庫
- Mybatis中Oracle的拼接模糊查詢MyBatisOracle
- Mybatis模糊查詢結果為空MyBatis
- mybatis 對特殊字元的模糊查詢MyBatis字元
- Mybatis框架:foreach迴圈遍歷欄位(為了解決動態表、動態欄位查詢資料)MyBatis框架
- 揭秘PostgreSQL:如何查詢表欄位名稱SQL
- SQL Server 查詢表註釋和欄位SQLServer
- 【PHP】關於fastadmin框架中使用with進行連表查詢時setEagerlyType欄位的理解PHPAST框架
- 小程式雲開發模糊查詢,實現資料庫多欄位的模糊搜尋資料庫
- Java根據前端返回的欄位名進行查詢資料Java前端
- linux 中根據檔案的大小進行檔案的查詢Linux
- 報表怎麼做模糊查詢
- 在 with 查詢中只查詢個別欄位
- Java根據前端返回的欄位名進行查詢資料的方法Java前端
- mysql sql同一個欄位多個行轉成一個欄位查詢MySql
- Mybatis學習01:利用mybatis查詢資料庫MyBatis資料庫
- 同一張表的兩個欄位比較查詢
- mybatis之sql查詢配置檔案resultType和resultMapMyBatisSQL
- Elasticsearch 複合查詢——多字串多欄位查詢Elasticsearch字串
- Mybatis-plus排除自定義欄位不查詢MyBatis
- ArcGIS對欄位分割查詢操作
- 查詢oracle欄位預設值Oracle
- Elasticsearch 單字串多欄位查詢Elasticsearch字串
- fastadmin中快速搜尋時執行查詢的欄位 預設查詢idAST
- 在 SAP MM 物料顯示介面上看到一個欄位,如何查詢哪張資料庫表的哪個欄位進行的儲存資料庫
- mysql 模糊查詢MySql
- Laravel 對於 Mysql 欄位string型別查詢,當使用數字對這個欄位進行查詢,PHP弱型別語言導致索引失效LaravelMySql型別PHP索引
- Spark SQL解析查詢parquet格式Hive表獲取分割槽欄位和查詢條件SparkSQLHive
- mybatis查詢mysql 資料庫中 BLOB欄位,結果出現亂碼MyBatisMySql資料庫
- Excel_不開啟檔案進行跨工作簿查詢Excel
- 檔案查詢
- 模型聯合查詢返回指定欄位模型
- 兩表關聯查詢:sql、mybatisSQLMyBatis
- 查詢mysql某張表中的所有資料(欄位)型別MySql型別