SmartSql Map
SmartSqlMap
属性 | 说明 |
---|---|
Scope | 域,用于SqlMap定义Sql声明范围 |
Statement标签
属性 | 说明 |
---|---|
Id | 唯一性编号 |
Cache | 缓存策略编号,引用自Cache标签 |
Statement 筛选子标签
标签 | 真条件 |
---|---|
IsEmpty | null or 空字符串 or 空IEnumerable |
IsEqual | 与比较值相等 |
IsFalse | 参数为 false |
IsGreaterEqual | 参数大于等于比较值 |
IsGreaterThan | 参数大于比较值 |
IsLessEqual | 参数小于等于比较值 |
IsLessThan | 参数小于比较值 |
IsNotEmpty | !(null or 空字符串 or 空IEnumerable) |
IsNotEqual | 参数不等于比较值 |
IsNotNull | 参数不等于 null |
IsNull | 参数等于 null |
IsProperty | 查询对象包含属性名 |
IsTrue | 参数为 true |
Switch | Switch 标签 |
Case | Switch标签的子标签,等于比较值 |
Defalut | Switch标签的子标签,未命中任何Case子标签时命中此标签 |
Statement 其他子标签
标签 | 说明 |
---|---|
Env | 用于判断全局变量 DbProvider |
Include | 引用外部Statement |
Dynamic | 动态标签,用于包裹筛选标签,匹配的第一个筛选标签的前缀将忽略 |
For | 用于参数为IEnumerable,遍历参数动态拼接Sql |
Where | 继承至Dynamic,用于包裹筛选标签,匹配的第一个筛选标签前缀被忽略,并添加 Where 前缀 |
Set | 继承至Dynamic,用于Update,包裹筛选标签,匹配的第一个筛选标签前缀被忽略,并添加 Set 前缀,必须匹配至少一个子标签,否则将抛出SmartSqlException异常。 |
Placeholder | 占位符标签,用于替换参数键值 |
Demo
For
如果数组内类型里边为(值类型 | String), Key属性值为必选,且与For标签内键值保持一致
var list = SqlMapper.Query<T_Test>(new RequestContext
{
Scope = "T_Test",
SqlId = "GetList",
Request = new
{
LikeNames = new string[] { "Ahoo", "Good" }
}
});
<For Prepend="And" Property="LikeNames" Key="Name" Open="(" Separator="Or" Close=")">
Name Like Concat('%',@Name,'%')
</For>
如果数组内类型里边为 !(值类型 | String)
IList<T_Test> test_list = new List<T_Test> {
new T_Test{ Name="1", Status=1},
new T_Test{ Name="2", Status=2}
};
SqlMapper.Execute(new RequestContext
{
Scope = "T_Test",
SqlId = "InsertRange",
Request = new { Values = test_list }
});
<Statement Id="InsertRange">
INSERT INTO T_Test
(Name,Status)
VALUES
<For Prepend="" Property="Values" Open="" Separator="," Close="">
(@Name,@Status)
</For>
</Statement>
作者:Ahoo Wang (阿虎)
Github: https://github.com/Ahoo-Wang/
SmartSql(高性能、高生产力,超轻量级的ORM!): https://github.com/Ahoo-Wang/SmartSql
SmartCode(不只是代码生成器!): https://github.com/Ahoo-Wang/SmartCode
CoSky 高性能、低成本微服务治理平台 : https://github.com/Ahoo-Wang/CoSky
CosId 通用、灵活、高性能的分布式 ID 生成器 : https://github.com/Ahoo-Wang/CosId
Wow 基于 DDD、EventSourcing 的现代响应式 CQRS 架构微服务开发框架: https://github.com/Ahoo-Wang/Wow
CoSec 基于 RBAC 和策略的多租户响应式安全框架: https://github.com/Ahoo-Wang/CoSec
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
分类:
SmartSql
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战