MybBatis動態SQL
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sunreal.mapper.BlogMapper">
<!--SQL片段,將常用SQL進行封裝-->
<sql id="if-title-author">
<if test="title != null and title != ''">
title = #{title}
</if>
<if test='state != null and state != "1"'>
and author = #{author}
</if>
</sql>
<!--如果實體類(createTime),資料庫(create_time),
需要的<settings>標籤中設定,開啟駝峰轉換
<setting name="mapUnderscoreToCamelCase" value="true"/>,
或使用<resultMap>標籤進行對映-->
<insert id="addBlog" parameterType="Blog">
INSERT INTO mybatis.blog (id, title, author, create_time, views)
VALUES (#{id}, #{title}, #{author}, #{createTime}, #{views})
</insert>
<!--<where>標籤可以自動過濾多餘的and-->
<!--注意:<test>標籤中引數要是有雙引號("")state != "1",否則無效-->
<select id="queryBlog" resultType="Blog" parameterType="map">
select *
from mybatis.blog
<where>
<include refid="if-title-author"></include>
</where>
</select>
<!--<choose>標籤,相當於JAVA的switch語句,
即使多個條件符合要求,也只會選擇優先順序最高的一條進行執行,
同時也可以自動過濾多餘(and)-->
<select id="queryBlogChoose" resultType="Blog">
select * from mybatis.blog
<where>
<choose>
<when test="title != null and title != ''">
title = #{title}
</when>
<when test="author != null and author != ''">
and author = #{author}
</when>
<otherwise>
and views = '1000'
</otherwise>
</choose>
</where>
</select>
<!--<set>標籤,在更新操作中自動過濾多餘的逗號(,)-->
<update id="updateBlog" parameterType="map">
UPDATE MYBATIS.BLOG
<set>
<if test="title != null and title != ''">
TITLE = #{title},
</if>
<if test="author != null and author != ''">
AUTHOR = #{author}
</if>
</set>
WHERE ID = #{id}
</update>
<!--foreach,需要傳入集合(ids)-->
<!--select * from mybatis.blog WHERE title = ? and ( id = ? or id = ? )-->
<select id="queryBlogFReach" resultType="Blog" parameterType="map">
select *
from mybatis.blog
<where>
<if test="title != null and title != ''">
title = #{title}
</if>
<foreach collection="ids" item="id" open="and (" close=")" separator="or">
id = #{id}
</foreach>
</where>
</select>
</mapper>
相關文章
- MyBatis 動態 SQLMyBatisSQL
- Mybatics動態sqlBATSQL
- mybatis動態SQLMyBatisSQL
- MyBatis(七) 動態SQLMyBatisSQL
- 1 Mybatis動態SQLMyBatisSQL
- Mybatis--動態SQLMyBatisSQL
- mybatis動態sql總結MyBatisSQL
- Mybatis-06 動態SqlMyBatisSQL
- MyBatis框架之SQL對映和動態SQLMyBatis框架SQL
- MyBatis對動態SQL的支援MyBatisSQL
- mybatis動態sql與分頁MyBatisSQL
- Java-Mybatis動態SQL整理JavaMyBatisSQL
- Gbase 8s 動態 SQLSQL
- Mybatis介紹之 動態SQLMyBatisSQL
- APEX 通過PL/SQL動態展示區域中動態內容SQL
- 動態SQL-條件分頁SQL
- 動態 SQL 和快取機制SQL快取
- Mybatis 動態執行SQL語句MyBatisSQL
- day06-動態SQL語句SQL
- 【SQL】Oracle避免動態SQL,提高過程執行效率SQLOracle
- 介面的繫結方案和動態SQLSQL
- hive Sql的動態分割槽問題HiveSQL
- Myabtis動態SQL,你真的會了嗎?SQL
- 【MyBatis學習總結 (五),動態SQL】MyBatisSQL
- PHP--動態生成sql查詢表格PHPSQL
- Mybatis where 1=1 動態sql問題MyBatisSQL
- MyBatis 動態 SQL 最全教程,這樣寫 SQL 太優雅了!MyBatisSQL
- SQL 如何實現動態的行列轉置SQL
- GaussDB資料庫SQL系列-動態語句資料庫SQL
- Mybatis 裡對映檔案的動態 SQL 語句,實現if,where,foreache的SQL語句動態拼接查詢MyBatisSQL
- MyBatis標籤實現的動態SQL語句MyBatisSQL
- BIRT 中如何根據引數動態拼接 SQLSQL
- PL/SQL中動態掉用儲存過程SQL儲存過程
- 一句SQL完成動態分級查詢SQL
- Mybatis(一)Porxy動態代理和sql解析替換MyBatisSQL
- 例項詳解如何構建動態SQL語句SQL
- MySQL儲存過程裡動態SQL的使用UXMySql儲存過程UX
- 關於IDEA使用xml實現動態sql的問題IdeaXMLSQL