Mybatis实现多表关联多条件查询
生活随笔
收集整理的這篇文章主要介紹了
Mybatis实现多表关联多条件查询
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
第一種實(shí)現(xiàn)方式:
| 1.在實(shí)體類中添加需要展示的但在數(shù)據(jù)庫表結(jié)構(gòu)中字段 ? 2.在mapper.xml的 <result column="project_name" jdbcType="VARCHAR" property="projectName" />定義需要展示的列3.在SQL中關(guān)聯(lián)查詢即可 <select id="selectByMap" resultType="com.apply.ism.entity.MaterialInfo">SELECT m.id,m.title,c.company,c.hierarchy,m.score,l.file_path,t.project_name,t.contents,m.file_id FROM material_info mLEFT JOIN company c ON m.company_id=c.id AND c.data_state='Normal'LEFT JOIN t_system t ON m.evaluation_id=t.id AND m.data_state='Normal'LEFT JOIN file_message l ON l.id=m.file_id AND l.data_state='Normal'<where>m.data_state='Normal'<if test="nd != null and nd !=''">AND t.nd=#{nd}</if><if test="projectName != null and projectName !='' and projectName != 'null'">AND t.project_name=#{projectName}</if></where> </select>4.在mapper.java 中編寫代碼: List<MaterialInfo> selectByMap(String nd,String projectName); | ? |
第二種實(shí)現(xiàn)方法:
| 不需要在實(shí)體類添加屬性,也不需要在<result column="project_name" jdbcType="VARCHAR" property="projectName" />定義列 ? 1.在SQL中關(guān)聯(lián)查詢 ? <select id="getSurveyInfoList" resultType="java.util.Map">SELECT s.companyid,s.yz_code,c.company,s.survey_name,s.start_time,s.end_time,s.qr_code FROM survey_info s JOIN company c ON s.companyid=c.idWHERE 1 = 1 AND s.data_state = 'Normal'<if test="param1 != null and param1 !=''">AND c.company LIKE CONCAT('%',#{param1},'%')</if><if test="param2 != null and param2 > 0">AND s.companyid=#{param2}</if>2.在mapper.java 中編寫代碼: ? List<Map<String, Object>> getSurveyInfoList(String dwmc, Long id); |
?
總結(jié)
以上是生活随笔為你收集整理的Mybatis实现多表关联多条件查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java实现随机抽取试题组成试卷
- 下一篇: spring boot中使用Pagehe