1、mybatis中的foreach條件的使用;
一、在xml文件中寫法範例:
<if test="actionTypeList !=null and actionTypeList.size !=0">
and a.actionType in
<foreach item="item" index="index" collection="actionTypeList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
二、在dao層使用Map<String,Object> map
三、在java中使用範例:
Map<String,Object> map=new HashMap<String,Object>();
List<String> actionTypeList=new ArrayList<String>();
actionTypeList.add("1");//活動
map.put("actionTypeList", actionTypeList);
map.put("userId", userId);
2、mybatis針對大於小於等特殊符號寫法範例:
<if test="readTime != null and readTime !=''">
and a.createTime <![CDATA[>=]]> #{readTime,jdbcType=BIGINT}
</if>
<if test="condition != null and condition =='0'.toString()">
</if>java
AND IFNULL(parentId,'')!=''
3、mysql中order by的使用範例:
ORDER BY CONVERT(ap.joinCount,SIGNED) DESC --針對數字的排序
ORDER BY CONVERT(v.userName USING gbk) COLLATE gbk_chinese_ci --中文排序mysql
like 寫法:sql
<if test="keyWord != null and keyWord !=''"> and (f.docNo like '%${keyWord}%' or f.userName like '%${keyWord}%' ) </if>
4、mybatis中的if else
<choose>
<when test="title != null and title !=''">
and title = #{title}
</when>
<when test="content != null and content !=''">
and content = #{content}
</when>
<otherwise>
and owner = "owner1"
</otherwise>
</choose> mybatis
5、批量insert寫法app
List<CompanyModuleAssignee> insertList = new ArrayList<>();//批量插入
for (int i = 0; i < defaultModuleAssignees.size(); i++) {
//保存執行人範圍模塊之間關聯
CompanyModuleAssignee companyModuleAssignee=new CompanyModuleAssignee();
companyModuleAssignee.setCompanyModuleAssigneeId(UUIDUtils.getGUID());
companyModuleAssignee.setTaskAssigneeId(taskAssigneeId);
companyModuleAssignee.setModuleId(assigneeDto.getModuleId());
companyModuleAssignee.setCompanyId(companyId);spa
companyModuleAssignee.setCreateUserId(loginUserId);
companyModuleAssignee.setCreateTime(DateUtils.getCurTimestamp());
companyModuleAssignee.setUpdateTime(companyModuleAssignee.getCreateTime());
companyModuleAssignee.setDelFlag(StringUtils.COMMON_VALUE_0);
insertList.add(companyModuleAssignee);
}
companyModuleAssigneeMapper.batchInsert(insertList);xml
mapper 寫法:排序
/** * 批量新增公司模塊執行人範圍數據 * @param * @return * @author ph.lin * @date 2017/2/16 */ int batchInsert(List<CompanyModuleAssignee> list);
xml寫法:ci
<insert id="batchInsert" parameterType="java.util.List">
insert into ju_gp_company_module_assignee (companyModuleAssigneeId, taskAssigneeId,
companyId, moduleId, createTime,
updateTime, createUserId, updateUserId,
delFlag)
values
<foreach collection="list" item="item" index="index" separator="," >
(#{item.companyModuleAssigneeId,jdbcType=VARCHAR}, #{item.taskAssigneeId,jdbcType=VARCHAR},
#{item.companyId,jdbcType=VARCHAR}, #{item.moduleId,jdbcType=VARCHAR}, #{item.createTime,jdbcType=BIGINT},
#{item.updateTime,jdbcType=BIGINT}, #{item.createUserId,jdbcType=VARCHAR}, #{item.updateUserId,jdbcType=VARCHAR},
#{item.delFlag,jdbcType=VARCHAR})
</foreach>
</insert>
long cur = DateUtils.getTheDayStartTimestamp(srvStartTime).getTime(); //服務開始時間當天0點 long afterTime = DateUtils.getTheDayEndTimestamp(srvEndTime).getTime();//服務結束時間當天24點
SELECT YEAR
( FROM_UNIXTIME(create_time/1000) ) '年',
MONTH ( FROM_UNIXTIME(create_time/1000) ) '月',
COUNT( u_id ) '會員合計'
FROM
kzj_ur_user
WHERE sys_flag=0 AND user_status=1
GROUP BY
YEAR ( FROM_UNIXTIME(create_time/1000) ),
MONTH ( FROM_UNIXTIME(create_time/1000) )get