电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MyBatis動態SQL實現配置過程解析

瀏覽:3日期:2023-10-24 10:51:59

動態SQL

什么是動態SQL:

​ 動態SQL就是根據不同的條件生成不同的SQL語句

if choose(when,otherwise) trim(where,set) foreach

1、搭建環境

建表

CREATE TABLE `bolg`( `id` VARCHAR(50) NOT NULL COMMENT ’博客id’, `title` VARCHAR(100) not null comment ’博客標題’, `author` VARCHAR(30) not null comment ’博客作者’, `creat_time` datetime not null comment ’創建時間’, `views` int(30) not null comment ’瀏覽量’)ENGINE=InnoDB DEFAULT CHARSET=utf8

創建一個基礎工程

導包

編寫配置文件

編寫實體類

@Datapublic class Blog { private int id; private String title; private String author; private Date creatTime; private int views;}

編寫實體類對應的Mapper接口和Mapper.xm

2、IF

<select parameterType='map' resultType='com.rui.pojo.Blog'> select * from mybatis.bolg where 1=1 <if test='title != null'> and title = #{title} </if> <if test='author != null'> and author = #{author} </if></select>

@Testpublic void queryBlogIF(){ SqlSession sqlSession = MyBatisUtils.getSqlSession(); BlogMapper mapper = sqlSession.getMapper(BlogMapper.class); HashMap map = new HashMap(); map.put('author','尹銳'); List<Blog> blogs = mapper.queryBlogIF(map); for (Blog blog : blogs) { System.out.println(blog); } sqlSession.close();}

3、choose(when,otherwise)

<select parameterType='map' resultType='com.rui.pojo.Blog'> select * from mybatis.bolg <where> <choose> <when test='title != null'>title=#{title} </when> <when test='author!=null'>and author = #{author} </when> <otherwise>and views = #{views} </otherwise> </choose> </where></select>

4、trim(where,set)

select * from mybatis.bolg<where><if test='title != null'> title = #{title}</if><if test='author != null'> and author = #{author}</if></where>

<update parameterType='map'> update mybatis.bolg <set> <if test='title != null'> title = #{title}, </if> <if test='author != null'> author = #{author}, </if> </set> where id = #{id}</update>

所謂的動態SQL,本質還是SQL語句,只是我們可以在SQL層面,去執行一些邏輯代碼

5、Foreach

select * from user where 1=1 and <foreach item='id' index='index' collection='ids' open='(' separator='or' close=')'> #{id} </foreach>(id=1 or id=2 or id=3)

MyBatis動態SQL實現配置過程解析

<!--select * from mybatis.bolg where 1=1 and (id=1 or id=2 or id=3)我們現在傳遞一個萬能的map,這個map中可以存在一個map--><select parameterType='map' resultType='com.rui.pojo.Blog'> select * from mybatis.bolg <where> <foreach collection='ids' item='id' open='(' close=')' separator='or'> id = #{id} </foreach> </where></select>

動態SQL就是在拼接SQL語句,我們只要保證SQL的正確性,按照SQL的格式,去排列組合就可以了

建議:

先在MySQL中寫出完整的SQL,再對應的去修改成為我們的動態SQL

SQL片段

有的時候,我們可能會將一些公共的部分抽取處理,方便復用

使用SQL標簽抽取公共的部分

<sql id='if-title-author'> <if test='title != null'> title = #{title} </if> <if test='author != null'> and author = #{author} </if></sql>

在需要使用的地方使用Include標簽引用即可

<select parameterType='map' resultType='com.rui.pojo.Blog'> select * from mybatis.bolg <where> <include refid='if-title-author'></include> </where></select>

注意事項:

最好基于單表來定義SQL片段

不要存在where或者set標簽,片段里盡量只有if就好了

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 牛皮纸|牛卡纸|进口牛皮纸|食品级牛皮纸|牛皮纸厂家-伽立实业 | 德国BOSCH电磁阀-德国HERION电磁阀-JOUCOMATIC电磁阀|乾拓百科 | 上海电子秤厂家,电子秤厂家价格,上海吊秤厂家,吊秤供应价格-上海佳宜电子科技有限公司 | 直线模组_滚珠丝杆滑台_模组滑台厂家_万里疆科技 | 华溶溶出仪-Memmert稳定箱-上海协烁仪器科技有限公司 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 重庆磨床过滤机,重庆纸带过滤机,机床伸缩钣金,重庆机床钣金护罩-重庆达鸿兴精密机械制造有限公司 | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 智能案卷柜_卷宗柜_钥匙柜_文件流转柜_装备柜_浙江福源智能科技有限公司 | 论文查重_免费论文查重_知网学术不端论文查重检测系统入口_论文查重软件 | 智慧钢琴-电钢琴-便携钢琴-数码钢琴-深圳市特伦斯乐器有限公司 | 穿线管|波纹穿线管|包塑金属软管|蛇皮管?闵彬专注弱电工程? | 彩超机-黑白B超机-便携兽用B超机-多普勒彩超机价格「大为彩超」厂家 | 隆众资讯-首页_大宗商品资讯_价格走势_市场行情 | 诚暄电子公司首页-线路板打样,pcb线路板打样加工制作厂家 | 昆山PCB加工_SMT贴片_PCB抄板_线路板焊接加工-昆山腾宸电子科技有限公司 | 打孔器,打孔钳厂家【温州新星德牌五金工具】 | 复合肥,化肥厂,复合肥批发,化肥代理,复合肥品牌-红四方 | 小型铜米机-干式铜米机-杂线全自动铜米机-河南鑫世昌机械制造有限公司 | 厌氧工作站-通用型厌氧工作站-上海胜秋科学仪器有限公司 | 美甲贴片-指甲贴片-穿戴美甲-假指甲厂家--薇丝黛拉 | 淄博不锈钢,淄博不锈钢管,淄博不锈钢板-山东振远合金科技有限公司 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 警用|治安|保安|不锈钢岗亭-售货亭价格-垃圾分类亭-移动厕所厂家-苏州灿宇建材 | 立式矫直机_卧式矫直机-无锡金矫机械制造有限公司 | 净气型药品柜-试剂柜-无管道净气型通风柜-苏州毕恩思 | 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | Win10系统下载_32位/64位系统/专业版/纯净版下载 | 一礼通 (www.yilitong.com)-企业礼品解决方案一站式服务平台 | 北京公司注册_代理记账_代办商标注册工商执照-企力宝 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | _网名词典_网名大全_qq网名_情侣网名_个性网名 | HDPE土工膜,复合土工膜,防渗膜价格,土工膜厂家-山东新路通工程材料有限公司 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 模切之家-专注服务模切行业的B2B平台! | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 |