IBatis.Net 老技术新研究
发布时间:2020-12-16 08:51:03 所属栏目:asp.Net 来源:网络整理
导读:我们现在用的数据访问组件封装了IBatis.Net框架,提供了标准的数据访问接口和服务。正好总结一下老技术IBatis.Net 在进行实际的数据访问开发之前,我们先了解一下:IBatis.Net中几个重要的配置文件和一些关键的技术原理: 4个重要的配置文件: Providers.con
我们现在用的数据访问组件封装了IBatis.Net框架,提供了标准的数据访问接口和服务。正好总结一下老技术IBatis.Net
关键的技术特性
开发一个数据访问的业务功能,主要有以下4个步骤:
示例几个关键的写法 1 <insert id="SaveDomainModel" parameterClass="DomainModel"> 2 begin 3 INSERT INTO Meta_DomainModel(ID,Name,RootDomainObjectID,IsCache,CacheStrategy,IsLogicallyDeleted,DataLoaderConfig,Version,Creator,LastModifier)VALUES( 4 #ID#,#Name#,#RootDomainObjectID#,#IsCache:VarChar#,#CacheStrategy#,#IsLogicDelete:VarChar#,#DataLoaderConfig#,#Version#,#Creator#,#LastModifier#) 5 iterate conjunction=" " open="" close property="DomainObjects" 6 INSERT INTO Meta_DomainObject(ID,DomainModelID,IsRootObject,ParentObjectID,ClazzReflectType,PropertyName,IsLazyLoad,DataObjectID,LastModifier) 7 VALUES(#DomainObjects[].ID#,#DomainObjects[].Name#,#DomainObjects[].DomainModelID#,#DomainObjects[].IsRootObject:VarChar#,#DomainObjects[].ParentObjectID#,#DomainObjects[].ClazzReflectType#, 8 #DomainObjects[].PropertyName#,#DomainObjects[].IsLazyLoad:VarChar#,#DomainObjects[].DataObjectID#,#DomainObjects[].Creator#,#DomainObjects[].LastModifier#) 9 </iterate10 end; 11 insert> 2. 简单批量Insert插入 1 ="SaveDomainObjectElements"="ArrayList" 3 ="" INSERT INTO Meta_DomainObjectElement(ID,Alias,DisplayName,DomainObjectID,DataType,Length,Precision,DefaultValue,IsAllowNull,ElementType,DataColumnID,1)"> 5 PropertyType,IsForQuery,1)"> VALUES(#[].ID#,#[].Name#,#[].Alias#,#[].DisplayName#,#[].DomainObjectID#,#[].DataType#,#[].Length#,#[].Precision#,#[].DefaultValue#,#[].IsAllowNull:VarChar#,#[].ElementType#,#[].DataColumnID#,1)"> #[].PropertyType#,#[].PropertyName#,#[].IsForQuery:VarChar#,#[].Creator#,#[].LastModifier#) 8 9 10 > 3. 查询一对多结果集 resultMap ="DataObjectResultMap" class="DataObject" groupby="ID" 2 result property="ID" column="ID" /> ="Name"="Name" 4 ="Descriptions"="Descriptions" ="DataSourceName"="DataSourceName" 6 ="LogicTableName"="LogicTableName" 7 ="IsTableSharding"="IsTableSharding" ="IsDatabaseSharding"="IsDatabaseSharding" ="TableShardingStrategyID"="TableShardingStrategy" 10 ="DatabaseShardingStrategyID"="DatabaseShardingStrategy" 11 ="IsView"="IsView" 12 ="IsLogicallyDeleted"="IsLogicallyDeleted" 13 ="Version"="Version" 14 ="Columns" resultMapping="MetadataMapper.DataColumnResultMap"></result15 ="Creator"="Creator" 16 ="CreateTime"="CreateTime" 17 ="LastModifier"="LastModifier" 18 ="LastModifyTime"="LastModifyTime" 19 resultMap20 ="DataColumnResultMap"="DataColumn"21 ="C_ID" 22 ="ColumnName"="ColumnName" 23 ="DisplayName"="DisplayName" 24 ="DataObjectID"="DataObjectID" 25 ="DataTypeID"="DataType" 26 ="Length"="Length" 27 ="Precision"="Precision" 28 ="DefaultValue"="DefaultValue" 29 ="IsNullable"="IsNullable" 30 ="IsPkColumn"="IsPkColumn" 31 ="IsSystem"="IsSystem" 32 ="IsShardingColumn"="IsShardingColumn" /> 33 ="ColumnOrder"="ColumnOrder" 34 ="C_Creator" 35 ="C_CreateTime" 36 ="C_LastModifier" 37 ="C_LastModifyTime" 38 39 对应的Select 语句 1 select ="GetDataObject" resultMap="string"2 SELECT Meta_DataObject.ID,Meta_DataObject.Name,Descriptions,DataSourceName,LogicTableName,IsTableSharding,IsDatabaseSharding,TableShardingStrategy,DatabaseShardingStrategy,IsView,Meta_DataObjectColumn.Creator,Meta_DataObjectColumn.LastModifier,Meta_DataObjectColumn.CreateTime,Meta_DataObjectColumn.LastModifyTime,1)">3 Meta_DataObjectColumn.ID as C_ID,ColumnName,IsNullable,IsPkColumn,IsShardingColumn,IsSystem,ColumnOrder,1)">4 Meta_DataObjectColumn.Creator as C_Creator,Meta_DataObjectColumn.LastModifier as C_LastModifier,Meta_DataObjectColumn.CreateTime as C_CreateTime,Meta_DataObjectColumn.LastModifyTime as C_LastModifyTime 5 FROM Meta_DataObject 6 LEFT JOIN Meta_DataObjectColumn on Meta_DataObjectColumn.DataObjectID = Meta_DataObject.ID 7 WHERE Meta_DataObject.ID=#id# 8 select> 4. 批量删除多张表 1 delete ="DeleteShardingStrategy" DELETE FROM Meta_ShardingColumn WHERE ShardingStrategyID=#id# DELETE FROM Meta_ShardingStrategy WHERE ID=#id# 6 delete> 5. 删除指定数据 1 ="DeleteShardingColumns" DELETE FROM Meta_ShardingColumn WHERE DataObjectID=#id# 3 > 6. 查询数据行数 1 ="IsTaskExist" resultClass="int" SELECT COUNT(1) FROM TableTask WHERE name=#Name# > 以上就是一些简单的IBatis.Net总结。 ? 周国庆 2017/10/14 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何利用ASP.net IIS 7.5中的浏览器缓存
- asp.net-core – 在asp.net vnext中使用Startup.cs中的Conf
- asp.net-core – 不使用HTTPS的ASP.NET 5 OAuth重定向URI
- .net – 为什么ValidateAntiForgeryTokenAttribute允许匿名
- 使用Asp.net在jquery中更改事件
- asp.net – 从DAL返回BLL
- asp.net – 为什么GET方法比POST快?
- asp.net – 带有服务器端资源字符串的Html输入标记
- I can 前端-07 ASP.NET 常用对象
- asp.net-mvc – 使用cshtml页面的angularjs不是带有web api