<select id="Client_Search" resultMap="Client_AllColumns_search" parameterClass="Client">
SELECT
Client.*,
<!--要查询的字段,如果一级行业为空则不查询-->
<isNotNull prepend="" property="FirstIndustry">
Industry.[Industry_Name],
Industry.[Industry_Id],
</isNotNull>
Users.[UserName],
Users.[UserRealName],
Users.[UserId]
FROM Client,Users
<!--判断是否要连接表-->
<isNotNull prepend="," property="FirstIndustry">Industry</isNotNull>
<isEmpty prepend="" property="BethroughItemArray" >
<isNotEmpty prepend="," property="ItemArray">BusinessModel,Business_Note,Project</isNotEmpty>
</isEmpty>
<isEmpty prepend="" property="ItemArray" >
<isNotEmpty prepend="," property="BethroughItemArray">BusinessModel,Business_Note,Project</isNotEmpty>
</isEmpty>
<isNotEmpty prepend="," property="BethroughItemArray" >
<isNotEmpty prepend="" property="ItemArray">BusinessModel,Business_Note,Project</isNotEmpty>
</isNotEmpty>
where Users.[UserId]=Client.[Import_User_Id] and Client.[Client_Sign]=0
<!--一级行业-->
<isNotNull prepend="AND" property="FirstIndustry">
Client.First_Industry=#FirstIndustry#
and Client.First_Industry=Industry.Industry_Id
</isNotNull>
<!--二级行业-->
<isNotNull prepend="AND" property="SecondIndustry">
Client.Second_Industry=#SecondIndustry#
</isNotNull>
<!--客户名称 模糊查询-->
<isNotEmpty prepend="AND" property="ClientName">Client.Client_Name like '%$ClientName$%'</isNotEmpty>
<!--查询代码-->
<isNotEmpty prepend="AND" property="ClientCode">Client.Client_Code like '%$ClientCode$%'</isNotEmpty>
<!--其他录入人-->
<isNotEmpty prepend="AND" property="IsUser">Client.Import_User_Id!=#ImportUserId#</isNotEmpty>
<!--所在省-->
<isNotNull prepend="AND" property="ProvinceID">Client.provinceID=#ProvinceID#</isNotNull>
<!--客户编号-->
<isNotEmpty prepend="AND" property="ClientId">Client.Client_Id like '%$ClientId$%'</isNotEmpty>
<!--做过的项目 在类里传一个ArrayList-->
<isNotEmpty prepend="AND" property="BethroughItemArray">
<iterate prepend="" property="BethroughItemArray" open="(" close=")" conjunction="and" >
Client.Id in (select BusinessModel.Client_Auto_Id from BusinessModel,Business_Note where Business_Note.Business_Id=BusinessModel.Business_Id
and Business_Note.Project_Id=#BethroughItemArray[].Value#)
</iterate>
</isNotEmpty>
</select>
分享到:
相关推荐
**IBatisNet与NHibernate:两种主流ORM框架的深度解析** 在.NET开发环境中,数据库操作是不可或缺的一部分。为了简化数据库访问层的复杂性,开发者通常会选用Object-Relational Mapping (ORM) 框架。IBatisNet和...
SQL映射文件是IbatisNet的核心,它定义了数据库查询、插入、更新和删除操作,以及这些操作与.NET对象的对应关系。例如,一个简单的用户查询映射可能如下所示: ```xml SELECT * FROM Users WHERE Id = #{id} ```...
开发者需要根据实际的数据库结构和业务需求,在SqlMap.xml文件中编写SQL映射,然后在C#代码中调用IBatisNet提供的API进行数据操作,例如插入、更新、查询和删除。 8. **优势与应用场景** IBatisNet的优势在于其...
6. **处理结果**:IbatisNet会自动将查询结果映射到预先定义的对象模型上,方便后续的业务逻辑处理。 7. **缓存机制**:如果启用了缓存,IbatisNet会将执行过的查询结果存储在内存中,提高数据访问速度。可以通过...
这种方式便于将数据库查询结果映射到对象模型上。 #### 参数映射(`parameterMap`) ```xml ``` 参数映射定义了存储过程中使用的参数及其类型。在这个例子中,定义了一个名为`swapParas`的参数映射,...
iBATISNet Database Layer!这个框架将让你能够更好的在dotnet应用中设计和实现实体层。这个框架有两个主要的组成部分,一个是SQL Maps,另一个是Data Access Objects。下面是一个简单的iBATISNet应用架构。 项目中...
4. **处理结果集**:将查询结果映射到业务对象,通过泛型方法自动完成。 **七、事务控制** 1. **手动事务**:在业务逻辑中控制事务的开启、提交和回滚。 2. **自动事务**:利用AOP(面向切面编程)实现事务的自动...
在`IBatisNetDemo`这个示例中,我们可以看到如何使用IBatisNet进行基本的数据访问操作,如插入、更新、删除和查询。它通常包括以下步骤: 1. 创建.NET类,类的属性对应数据库表的字段。 2. 编写XML映射文件,定义...
**IBatisNet 源代码分析** IBatisNet 是一个基于 .NET 平台的对象关系映射(ORM)框架,它允许开发人员将数据库访问层与业务逻辑层解耦,提高开发效率和代码可维护性。这个源码库提供了一个深入理解 IBatisNet 内部...
而IbatisNet是MyBatis的.NET版本,是一个轻量级的数据持久层框架,它提供了SQL映射功能,允许开发者编写动态、灵活的SQL查询,从而与数据库进行交互。 在C#中集成IbatisNet,可以极大地简化数据访问层的开发工作,...
5. **参数映射与结果映射**:教程会详细解释如何将方法参数映射到SQL语句的占位符,以及如何将查询结果自动映射到.NET对象。这涉及到ParameterMap和ResultMap的使用,以及自定义类型处理器。 6. **事务管理**:...
7. **缓存机制**: IBatisNet提供了缓存功能,可以缓存查询结果,减少对数据库的访问,提高系统性能。开发者可以配置不同级别的缓存,例如,本地缓存和二级缓存。 8. **扩展性**: IBatisNet的架构设计使得它易于扩展...
这个DEMO中的`SQLLiteDemo`可能包含了完成上述步骤的所有必要文件,包括`ibatisnet.config`、实体类、映射文件以及执行查询的测试代码。通过这个DEMO,你可以学习到如何在.NET项目中使用iBatisNet连接SQLite数据库,...
2. **高度可配置**:通过XML配置文件,你可以定制SQL语句、存储过程等,实现灵活的数据查询和更新操作。 3. **缓存机制**:支持第一级和第二级缓存,提高数据读取性能,减少对数据库的频繁访问。 4. **事务管理**:...
Ibatisnet是一个基于.NET平台的轻量级持久层框架,它是MyBatis的.NET版本,致力于简化数据库操作,提供了一种灵活的SQL映射机制,让开发者能够将SQL语句直接写在配置文件中,避免了传统的ADO.NET操作中大量的数据库...
IBatisNet的核心特点是动态SQL,它允许在SQL语句中直接进行条件判断和循环,提高了查询的灵活性和性能。在配置好后,你会发现IBatisNet的强大之处在于它能很好地处理复杂的数据库交互,减少了数据访问层的代码量。 ...
本篇文章将详细探讨IBatisnet框架如何在这样的架构中发挥作用,以及如何帮助初学者理解并构建可扩展、易于维护的系统。 **表现层(Presentation Layer)** 表现层是用户与系统交互的界面,通常包括Web页面、Windows...
Ibatisnet,全称为iBATIS .NET,是一款基于.NET平台的持久层框架,它主要解决了在使用ADO.NET操作数据库时遇到的一些问题,比如SQL语句与代码难以分离、各层之间的耦合度过高等。iBATIS的核心在于通过XML配置文件...
在IBatisNet中,SQL语句被定义在XML配置文件中,允许开发者自由地编写复杂的查询,而无需过度依赖ORM的自动映射。此外,IBatisNet支持存储过程、事务管理以及多数据源配置,使得数据库操作更加灵活和高效。 2. **...