日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatis.xml中sql编写规范

發布時間:2025/5/22 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis.xml中sql编写规范 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、越少的代碼,越強悍的功能,xml里面應該6個sql語句就夠用了,修改,維護成本很低,見下表?下載

英文名方法名稱核心點建議
insert1.新增數據如果是自增主鍵,應該返回主鍵ID
deleteById2. 根據主鍵ID刪除數據sql默認加limit 1,防止多刪數據此方法不建議有,建議邏輯刪除
updateById3. 根據主鍵ID修改數據sql默認加limit 1,防止多修改數據
selectById4. 根據主鍵查詢數據查詢一條數據
selectByIdForUpdate5. 根據主鍵加鎖查詢數據加鎖查詢一條數據,事務處理用
queryListByParam6. 根據輸入條件查詢數據列表和7配合使用
queryCountByParam7. 根據輸入條件查詢總數和6配合使用



二、公共的查詢條件和字段列表等抽出公共sql段,方便使用?

英文名方法名稱核心點建議
_field_list1.字段列表修改方便,方便字段排序
_value_list2. 字段值列表修改方便,方便字段值排序
_common_where3. 通用查詢條件每個字段的等值判斷
_regin_where4. 通用范圍區間條件字段的時間區間,字段的金額區間等的判斷
_contain_where5. 包含字段值范圍條件字段的常量值包含判斷,in ,not in
_common_sorts6. 通用排序條件order by



三、一個mybatis.xml例子??下載

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="Assets">??

  • ??

  • ??

  • ????<!--?設置1分鐘緩存,緩存大小1024,采用最近最少使用算法?-->??

  • ????<cache?readOnly="true"?flushInterval="60000"?size="10"?eviction="LRU"?/>??

  • ??

  • ????<resultMap?type="Assets"?id="AssetsResultMap">??

  • ????????<id?property="id"?column="id"?/>??

  • ????????<result?property="userId"?column="user_id"?/>??

  • ????????<result?property="amount"?column="amount"?/>??

  • ????????<result?property="earning"?column="earning"?/>??

  • ????????<result?property="type"?column="type"?/>??

  • ????????<result?property="status"?column="status"?/>??

  • ????????<result?property="productId"?column="product_id"?/>??

  • ????????<result?property="productName"?column="product_name"?/>??

  • ????????<result?property="cardNo"?column="card_no"?/>??

  • ????????<result?property="bankCode"?column="bank_code"?/>??

  • ????????<result?property="orderId"?column="order_id"?/>??

  • ????????<result?property="effectiveDate"?column="effective_date"?/>??

  • ????????<result?property="redeemType"?column="redeem_type"/>??

  • ????????<result?property="initAmount"?column="init_amount"/>??

  • ????????<result?property="initEarning"?column="init_earning"/>??

  • ????????<result?property="redeemingAmount"?column="redeeming_amount"/>??

  • ????????<result?property="redeemingEarning"?column="redeeming_earning"/>??

  • ????????<result?property="redeemedAmount"?column="redeemed_amount"/>??

  • ????????<result?property="redeemedEarning"?column="redeemed_earning"/>??

  • ????????<result?property="punishAmount"?column="punish_amount"/>??

  • ????????<result?property="latestRedeemTime"?column="latest_redeem_time"/>??

  • ????????<result?property="maturityDate"?column="maturity_date"/>??

  • ????????<result?property="createTime"?column="create_time"?/>??

  • ????????<result?property="modifyTime"?column="modify_time"?/>??

  • ????????<result?property="remark"?column="remark"?/>??

  • ????</resultMap>??

  • ??

  • ????<!--?字段列表?-->??

  • ????<sql?id="_field_list">??

  • ????????id,???

  • ????????user_id,???

  • ????????amount,???

  • ????????earning,???

  • ????????type,???

  • ????????status,???

  • ????????product_id,???

  • ????????product_name,??

  • ????????card_no,???

  • ????????bank_code,???

  • ????????order_id,???

  • ????????effective_date,???

  • ????????redeem_type,???

  • ????????init_amount,???

  • ????????init_earning,???

  • ????????redeeming_amount,??

  • ????????redeeming_earning,??

  • ????????redeemed_amount,???

  • ????????redeemed_earning,???

  • ????????punish_amount,??

  • ????????latest_redeem_time,???

  • ????????maturity_date,??

  • ????????create_time,???

  • ????????modify_time,??

  • ????????remark??

  • ????</sql>??

  • ??

  • ????<!--?字段值列表?-->??

  • ????<sql?id="_value_list">??

  • ????????#{id},???

  • ????????#{userId},??

  • ????????#{amount},???

  • ????????#{earning},???

  • ????????#{type},???

  • ????????#{status},???

  • ????????#{productId},???

  • ????????#{productName},???

  • ????????#{cardNo},???

  • ????????#{bankCode},???

  • ????????#{orderId},???

  • ????????#{effectiveDate},???

  • ????????#{redeemType},???

  • ????????#{initAmount},???

  • ????????#{initEarning},???

  • ????????#{redeemingAmount},??

  • ????????#{redeemingEarning},??

  • ????????#{redeemedAmount},???

  • ????????#{redeemedEarning},???

  • ????????#{punishAmount},??

  • ????????#{latestRedeemTime},???

  • ????????#{maturityDate},??

  • ????????#{createTime},??

  • ????????#{modifyTime},???

  • ????????#{remark}??

  • ????</sql>??

  • ??

  • ????<!--?通用查詢條件??不支持ID查詢條件,ID的直接通過ID即可以查?-->??

  • ????<sql?id="_common_where">??

  • ????????<if?test="id?!=?null">?AND?id?=?#{id}</if>??

  • ????????<if?test="userId?!=?null">?AND?user_id?=?#{userId}</if>??

  • ????????<if?test="amount?!=?null">?AND?amount?=?#{amount}</if>??

  • ????????<if?test="earning?!=?null">?AND?earning?=?#{earning}</if>??

  • ????????<if?test="type?!=?null">?AND?type?=?#{type}</if>??

  • ????????<if?test="status?!=?null">?AND?status?=?#{status}</if>??

  • ????????<if?test="productId?!=?null">?AND?product_id?=?#{productId}</if>??

  • ????????<if?test="productName?!=?null">?AND?product_name?=?#{productName}</if>??

  • ????????<if?test="cardNo?!=?null">?AND?card_no?=?#{cardNo}</if>??

  • ????????<if?test="bankCode?!=?null">?AND?bank_code?=?#{bankCode}</if>??

  • ????????<if?test="orderId?!=?null">?AND?order_id?=?#{orderId}</if>??

  • ????????<if?test="effectiveDate?!=?null">?AND?effective_date?=?#{effectiveDate}</if>??

  • ????????<if?test="redeemType?!=?null">?AND?redeem_type?=?#{redeemType}</if>??

  • ????????<if?test="initAmount?!=?null">?AND?init_amount?=?#{initAmount}</if>??

  • ????????<if?test="initEarning?!=?null">?AND?init_earning?=?#{initEarning}</if>??

  • ????????<if?test="redeemingAmount?!=?null">?AND?redeeming_amount?=?#{redeemingAmount}</if>??

  • ????????<if?test="redeemingEarning?!=?null">?AND?redeeming_earning?=?#{redeemingEarning}</if>??

  • ????????<if?test="redeemedAmount?!=?null">?AND?redeemed_amount?=?#{redeemedAmount}</if>??

  • ????????<if?test="redeemedEarning?!=?null">?AND?redeemed_earning?=?#{redeemedEarning}</if>??

  • ????????<if?test="punishAmount?!=?null">?AND?punish_amount?=?#{punishAmount}</if>??

  • ????????<if?test="latestRedeemTime?!=?null">??

  • ????????????<![CDATA[??

  • ????????????????AND?latest_redeem_time?=?#{latestRedeemTime,?jdbcType=TIMESTAMP}???

  • ????????????]]>??

  • ????????</if>??

  • ????????<if?test="maturityDate?!=?null">??

  • ????????????<![CDATA[??

  • ????????????????AND?maturity_date?=?#{maturityDate,?jdbcType=TIMESTAMP}???

  • ????????????]]>??

  • ????????</if>??

  • ????????<if?test="createTime?!=?null">??

  • ????????????<![CDATA[??

  • ????????????????AND?create_time?=?#{createTime,?jdbcType=TIMESTAMP}???

  • ????????????]]>??

  • ????????</if>??

  • ????????<if?test="modifyTime?!=?null">??

  • ????????????<![CDATA[??

  • ????????????????AND?modify_time?=?#{modifyTime,?jdbcType=TIMESTAMP}???

  • ????????????]]>??

  • ????????</if>??

  • ????????<if?test="remark?!=?null">?AND?remark?=?#{remark}</if>??

  • ????</sql>??

  • ??????

  • ??????

  • ????<!--?通用范圍區間查詢?-->??

  • ????<sql?id="_regin_where">??

  • ????????<if?test="egtCreateTime?!=?null">??

  • ????????????<![CDATA[??

  • ????????????????AND?create_time?>=?#{egtCreateTime,?jdbcType=TIMESTAMP}???

  • ????????????]]>??

  • ????????</if>??

  • ????????<if?test="ltCreateTime?!=?null">??

  • ????????????<![CDATA[??

  • ????????????????AND?create_time?<?#{ltCreateTime,?jdbcType=TIMESTAMP}???

  • ????????????]]>??

  • ????????</if>??

  • ????</sql>??

  • ??????

  • ??????

  • ????<!--?通用排序處理?-->??

  • ????<sql?id="_common_sorts">??

  • ????????<if?test="sorts?!=?null">??

  • ????????????ORDER?BY??

  • ????????????<foreach?collection="sorts"?item="item"?separator=",">??

  • ????????????????${item.column.columnName}?${item.sortMode.mode}??

  • ????????????</foreach>??

  • ????????</if>??

  • ????</sql>??

  • ??????

  • ??????

  • ????<!--?in?和?not?in的通用查詢where?-->??

  • ????<sql?id="_contain_where">??

  • ????????<if?test="containStatusSet!=null">??

  • ????????????AND?status?IN??

  • ????????????<foreach?item="item"?index="i"?collection="containStatusSet"?separator=","?open="("?close=")"?>????

  • ????????????????#{item}????

  • ????????????</foreach>??

  • ????????</if>??

  • ??????????

  • ????</sql>??

  • ??????

  • ??????

  • ????<!--?插入操作?-->??

  • ????<insert?id="insert"?parameterType="Assets">??

  • ????????INSERT?INTO?assets?(??

  • ????????????<include?refid="_field_list"/>)??

  • ????????VALUES?(??

  • ????????????<include?refid="_value_list"/>)??

  • ????</insert>??

  • ??

  • ??

  • ????<!--?根據ID主鍵進行刪除,注意limit?1?-->??

  • ????<delete?id="deleteById"??parameterType="java.lang.String"?>??

  • ????????delete?from?assets?where?id?=?#{id}?limit?1??

  • ????</delete>???

  • ??

  • ??

  • ????<!--?根據主鍵ID進行更新,注意limit?1?-->??

  • ????<update?id="updateById"?parameterType="Assets">??

  • ????????UPDATE?assets??

  • ????????<set>??

  • ????????????<if?test="userId?!=?null">??

  • ????????????????user_id?=?#{userId},??

  • ????????????</if>??

  • ????????????<if?test="amount?!=?null">??

  • ????????????????amount?=?#{amount},??

  • ????????????</if>??

  • ????????????<if?test="earning?!=?null">??

  • ????????????????earning?=?#{earning},??

  • ????????????</if>??

  • ????????????<if?test="type?!=?null">??

  • ????????????????type?=?#{type},??

  • ????????????</if>??

  • ????????????<if?test="status?!=?null">??

  • ????????????????status?=?#{status},??

  • ????????????</if>??

  • ????????????<if?test="productName?!=?null">??

  • ????????????????product_name?=?#{productName},??

  • ????????????</if>??

  • ????????????<if?test="productId?!=?null">??

  • ????????????????product_id?=?#{productId},??

  • ????????????</if>??

  • ????????????<if?test="cardNo?!=?null">??

  • ????????????????card_no?=?#{cardNo},??

  • ????????????</if>??

  • ????????????<if?test="bankCode?!=?null">??

  • ????????????????bank_code?=?#{bankCode},??

  • ????????????</if>??

  • ????????????<if?test="orderId?!=?null">??

  • ????????????????order_id?=?#{orderId},??

  • ????????????</if>??

  • ????????????<if?test="effectiveDate?!=?null">??

  • ????????????????effective_date?=?#{effectiveDate},??

  • ????????????</if>??

  • ????????????<if?test="redeemType?!=?null">??

  • ????????????????redeem_type?=?#{redeemType},??

  • ????????????</if>??

  • ????????????<if?test="initAmount?!=?null">??

  • ????????????????init_amount?=?#{initAmount},??

  • ????????????</if>??

  • ????????????<if?test="initEarning?!=?null">??

  • ????????????????init_earning?=?#{initEarning},??

  • ????????????</if>??

  • ????????????<if?test="redeemingAmount?!=?null">??

  • ????????????????redeeming_amount?=?#{redeemingAmount},??

  • ????????????</if>??

  • ????????????<if?test="redeemingEarning?!=?null">??

  • ????????????????redeeming_earning?=?#{redeemingEarning},??

  • ????????????</if>??

  • ????????????<if?test="redeemedAmount?!=?null">??

  • ????????????????redeemed_amount?=?#{redeemedAmount},??

  • ????????????</if>??

  • ????????????<if?test="redeemedEarning?!=?null">??

  • ????????????????redeemed_earning?=?#{redeemedEarning},??

  • ????????????</if>??

  • ????????????<if?test="punishAmount?!=?null">??

  • ????????????????punish_amount?=?#{punishAmount},??

  • ????????????</if>??

  • ????????????<if?test="latestRedeemTime?!=?null">??

  • ????????????????latest_redeem_time?=?#{latestRedeemTime},??

  • ????????????</if>??

  • ????????????<if?test="maturityDate?!=?null">??

  • ????????????????maturity_date?=?#{maturityDate},??

  • ????????????</if>??

  • ????????????<if?test="modifyTime?!=?null">??

  • ????????????????modify_time?=?#{modifyTime},??

  • ????????????</if>??

  • ????????????<if?test="remark?!=?null">??

  • ????????????????remark?=?#{remark},??

  • ????????????</if>??

  • ????????</set>??

  • ??

  • ????????<where>??

  • ????????????id?=?#{id}?limit?1??

  • ????????</where>??

  • ????</update>??

  • ??

  • ??

  • ????<!--?根據ID進行查詢?-->??

  • ????<select?id="selectById"?resultMap="AssetsResultMap">??

  • ????????select?*?from?assets?where?id?=?#{id}??

  • ????</select>??

  • ??????

  • ??????

  • ????<!--?根據ID進行加行鎖查詢?-->??

  • ????<select?id="selectByIdForUpdate"?resultMap="AssetsResultMap">??

  • ????????select?*?from?assets?where?id?=?#{id}?for?update??

  • ????</select>??

  • ??

  • ??????

  • ????<!--?根據查詢條件查詢數據和queryCountByParam方法配對使用?-->??

  • ????<select?id="queryListByParam"?parameterType="map"?resultMap="AssetsResultMap">??

  • ????????SELECT???

  • ????????????<include?refid="_field_list"/>??

  • ????????FROM???

  • ????????????assets??

  • ????????<where>??

  • ????????????1?=?1??

  • ????????????<include?refid="_common_where"/>??

  • ????????????<include?refid="_regin_where"/>??

  • ????????????<include?refid="_contain_where"/>??

  • ????????</where>??

  • ??????????

  • ????????<include?refid="_common_sorts"/>??

  • ??????????

  • ????????<if?test="offset?!=?null?and?rows?!=?null">??

  • ????????????limit?#{offset},?#{rows}??

  • ????????</if>??

  • ????</select>??

  • ??????

  • ??????

  • ????<!--?根據查詢條件查詢總數和queryListByParam方法配對使用?-->??

  • ????<select?id="queryCountByParam"?parameterType="map"?resultType="java.lang.Integer">??

  • ????????SELECT?count(1)?FROM?assets??

  • ????????<where>??

  • ????????????1?=?1??

  • ????????????<include?refid="_common_where"/>??

  • ????????????<include?refid="_regin_where"/>??

  • ????????????<include?refid="_contain_where"/>??

  • ????????</where>??

  • ????</select>??

  • ??????

  • </mapper> ?


  • 轉載于:https://blog.51cto.com/12186181/1863301

    總結

    以上是生活随笔為你收集整理的mybatis.xml中sql编写规范的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。