mybatis中的查询
第一種,根據創建時間查詢,搜索框中開始時間和結束時間,在搜索的時間段中包含創建時間的記錄被查詢出來
<if test="(null!=timeStart and timeStart !='' ) and (null!=timeEnd and timeEnd !='' )">AND a.insert_dateBETWEEN #{timeStart}AND #{timeEnd} </if>?
第二種,模糊查詢,根據關鍵字模糊查詢
<if test="null!=carId ?and carId !=''">
?? ??? ?AND ?a.car_id like '%${carId}%'
</if>
第三種,統計,如果統計結果只有一條并且只有一列,那么直接返回integer類型即可
int getCount(Map<String,Object> paramMap);
<select id="getCount" resultType="java.lang.Integer">
?? ? ? ?SELECT
?? ??? ??? ?COUNT(id)
?? ??? ?FROM
?? ??? ??? ?`tb_admin`
?? ??? ?<if test="province == null || province == ''">
?? ??? ??? ?where role_id IN(SELECT role_id FROM tb_role)
?? ??? ?</if>
?? ??? ?<if test="province != null">
?? ??? ?where role_id IN(
?? ??? ??? ?SELECT role_id FROM tb_role where?
?? ??? ? ? ?? ??? ?province = #{province,jdbcType=VARCHAR}?
?? ??? ??? ?<if test="city == null || city == ''">
?? ??? ??? ??? ?AND city is not null
?? ??? ??? ?</if>
?? ??? ??? ?<if test="city != null and city != ''">
?? ??? ??? ??? ?AND city = #{city,jdbcType=VARCHAR}
?? ??? ??? ??? ?<if test="partition == null || partition == ''">
?? ??? ??? ??? ??? ?AND?? ?`PARTITION` is not null
?? ??? ??? ??? ?</if>
?? ??? ??? ??? ?<if test="partition != null">
?? ??? ??? ??? ??? ?AND?? ?`PARTITION` = #{partition,jdbcType=VARCHAR}
?? ??? ??? ??? ?</if>
?? ??? ??? ?</if>
?? ??? ??? ?)
?? ??? ?</if>
?? ? ?</select>
如果有多行并且有多列,那么,使用實體類對返回結果進行包裝
實體類中
@Transient private String total; @TableField("order_status") private String orderStatus;mapper.xml中
?
<result column="total" property="total"/> <result column="order_status" property="orderStatus"/> <select id="selectByStationStaffId" parameterType="java.lang.String" resultMap="BaseResultMap">SELECTCOUNT(order_no) AS total,order_statusFROMtb_tax_orderWHEREstation_staff_id = #{stationStaffId}AND DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <![CDATA[ <= ]]> date(insert_date)GROUP BY order_status</select>?
總結
以上是生活随笔為你收集整理的mybatis中的查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java判断字符串的值是否为0或者为空
- 下一篇: java批量导入数据到excel