相信每个人都不喜欢把一句代码写了一遍又一遍
然而在java开发里,有些代码确实需要写个好几遍
比如mapper里的sql,查询是select * from 表名;
然后很多都会有个where条件,根据什么什么查询什么的
这个时候就会多次出现selece * from 表名; 这个字段
那么怎样才能简化呢?
下面说两种方法
1.include,这个在很多开源框架里还是挺常见的
我们可以先写一句查询
<sql id="这个是名字">
select * from 表名
</sql>
是不是在想条件呢?
不要急,往下看,接下来就写普通的调用
<select id="名字" resultMap="参数名字">
--然后加一句这个
<include refid="这个和上一句查询表的id名字一样"/>
--然后再接where条件
where id = #{id}
</select>
然后在controller层调用带条件的方法就行,剩下的交给mapper自己去拼接
这样在多个查询的情况下就可以只写where条件就行啦。
2.第二种方法就是判断了
<select id="方法名" resultMap="参数名字">
--这里接查询语句
select * from 表民
--然后是where条件
<where>
<if test="id!= null and id != ''">
and id= #{id}
</if>
<if test="name!= null and name!='' ">
and name= #{name}
</if>
</where>
--在次接排序或格式条件常见
</select>
这就是常用的两种方法啦,希望能对各位开发人员有用!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类