`

ibatis sql基础

 
阅读更多

1.sqlMapConfig

 

<sqlMapConfig>
	<properties resource="db.properties"/>
    <settings
        cacheModelsEnabled="true"
        enhancementEnabled="true"
        lazyLoadingEnabled="true"
        maxRequests="128"
        maxSessions="32"
        maxTransactions="16"
        useStatementNamespaces="true"/>

	
	<typeAlias alias="stringBooleanHandler" type="com....common.ibatis.StringBooleanTypeHandler"/>
	<typeAlias alias="integerBooleanHandler" type="com....common.ibatis.IntegerBooleanTypeHandler"/>
    
        <sqlMap resource="ibatis/sql/statistics.xml"/>
	<sqlMap resource="ibatis/sql/user.xml"/>

</sqlMapConfig>

 2.命名空间和别名

 

<sqlMap namespace="statistics">

	<typeAlias alias="websiteCnt" type="cn....tables.statistics.TrackingWebsiteCnt"/>

 

 3.

 

	<sql id="getOrderCondition">
		<isNotEmpty prepend="ORDER BY"  property="sortField">
					<![CDATA[ $sortField$ $orderBy$ ]]>
		</isNotEmpty>
		<isEmpty prepend="ORDER BY"  property="sortField">
					<![CDATA[ a.created_at desc ]]>
		</isEmpty>
		<isGreaterThan property="page" compareValue="0">
			<isGreaterThan property="pageSize" compareValue="0">
					<![CDATA[ limit $pos$ , $pageSize$ ]]>
			</isGreaterThan>
		</isGreaterThan>
	</sql>

  <select id="getSubCompanyCntsList" parameterClass="subCompanyCnt" resultClass="subCompanyCnt">

 

		   SELECT     a.id
					, a.username		userName
					, a.company_id      companyId
					, a.name			name
					, a.created_at		createdAt
					, IFNULL(c.validMetaCount, 0) validMetaCount
					, IFNULL(c.pendingMetaCount, 0) pendingMetaCount
					, IFNULL(d.orderCount, 0) orderCount
					, IFNULL(d.pendingOrderCount, 0) pendingOrderCount
					, IFNULL(d.confirmedOrderCount, 0) confirmedOrderCount
					, IFNULL(d.startOrderCount, 0) startOrderCount
					, IFNULL(d.stopOrderCount, 0) stopOrderCount
					, IFNULL(d.closeOrderCount, 0) closeOrderCount
					, IFNULL(e.matchCount, 0) matchCount
					, IFNULL(f.reportCount, 0) reportCount
		   FROM		  ${sso.database}.company_subCompany b
					,${sso.database}.user a

		   LEFT JOIN (SELECT subCompany_id
					       , SUM(CASE WHEN is_valid = 'valid' THEN 1 ELSE 0 END) validMetaCount
					       , SUM(CASE WHEN is_valid = 'pending' THEN 1 ELSE 0 END) pendingMetaCount
				      FROM meta
					  GROUP BY subCompany_id ) c ON c.subCompany_id = a.company_id
		   LEFT JOIN (SELECT subCompany_id
		            , count(id) orderCount
					, SUM(CASE WHEN order_status = 'need confirm' THEN 1 ELSE 0 END) pendingOrderCount
					, SUM(CASE WHEN order_status = 'confirmed' THEN 1 ELSE 0 END) confirmedOrderCount
					, SUM(CASE WHEN order_status = 'in process' and start_at > 0 and stop_at = 0 THEN 1 ELSE 0 END) startOrderCount
					, SUM(CASE WHEN order_status = 'in process' and start_at = 0 and stop_at > 0 THEN 1 ELSE 0 END) stopOrderCount
					, SUM(CASE WHEN order_status = 'finished' THEN 1 ELSE 0 END) closeOrderCount
					FROM trackingOrder
					GROUP BY subCompany_id) d ON a.company_id = d.subCompany_id
		   LEFT JOIN (SELECT company_id
							, count(*) matchCount
					  FROM matchedPage where verification = 'mediadna'
					  GROUP BY company_id) e ON a.company_id = e.company_id
		   LEFT JOIN (SELECT  subCompany_id
							, count(*) reportCount
					  FROM  rpo_summaryCompany
					  WHERE	is_deleted = 'false'
					  GROUP BY subCompany_id) f ON a.company_id = f.subCompany_id

		   WHERE	a.is_deleted = 'false'
		   AND		b.company_id = #companyId#
		   AND		b.subCompany_id = a.company_id
		   <isNotEmpty prepend="AND" property="searchKeyword">
					 a.name like '%$searchKeyword$%'
			</isNotEmpty>
		   <include refid="getOrderCondition" />
	</select>

 

	<select id="getSubCompanyCntsList" parameterClass="subCompanyCnt" resultClass="subCompanyCnt">

		   SELECT     a.id
					, a.username		userName
					, a.company_id      companyId
					, a.name			name
					, a.created_at		createdAt
					, IFNULL(c.validMetaCount, 0) validMetaCount
					, IFNULL(c.pendingMetaCount, 0) pendingMetaCount
					, IFNULL(d.orderCount, 0) orderCount
					, IFNULL(d.pendingOrderCount, 0) pendingOrderCount
					, IFNULL(d.confirmedOrderCount, 0) confirmedOrderCount
					, IFNULL(d.startOrderCount, 0) startOrderCount
					, IFNULL(d.stopOrderCount, 0) stopOrderCount
					, IFNULL(d.closeOrderCount, 0) closeOrderCount
					, IFNULL(e.matchCount, 0) matchCount
					, IFNULL(f.reportCount, 0) reportCount
		   FROM		  ${sso.database}.company_subCompany b
					,${sso.database}.user a

		   LEFT JOIN (SELECT subCompany_id
					       , SUM(CASE WHEN is_valid = 'valid' THEN 1 ELSE 0 END) validMetaCount
					       , SUM(CASE WHEN is_valid = 'pending' THEN 1 ELSE 0 END) pendingMetaCount
				      FROM meta
					  GROUP BY subCompany_id ) c ON c.subCompany_id = a.company_id
		   LEFT JOIN (SELECT subCompany_id
		            , count(id) orderCount
					, SUM(CASE WHEN order_status = 'need confirm' THEN 1 ELSE 0 END) pendingOrderCount
					, SUM(CASE WHEN order_status = 'confirmed' THEN 1 ELSE 0 END) confirmedOrderCount
					, SUM(CASE WHEN order_status = 'in process' and start_at > 0 and stop_at = 0 THEN 1 ELSE 0 END) startOrderCount
					, SUM(CASE WHEN order_status = 'in process' and start_at = 0 and stop_at > 0 THEN 1 ELSE 0 END) stopOrderCount
					, SUM(CASE WHEN order_status = 'finished' THEN 1 ELSE 0 END) closeOrderCount
					FROM trackingOrder
					GROUP BY subCompany_id) d ON a.company_id = d.subCompany_id
		   LEFT JOIN (SELECT company_id
							, count(*) matchCount
					  FROM matchedPage where verification = 'mediadna'
					  GROUP BY company_id) e ON a.company_id = e.company_id
		   LEFT JOIN (SELECT  subCompany_id
							, count(*) reportCount
					  FROM  rpo_summaryCompany
					  WHERE	is_deleted = 'false'
					  GROUP BY subCompany_id) f ON a.company_id = f.subCompany_id

		   WHERE	a.is_deleted = 'false'
		   AND		b.company_id = #companyId#
		   AND		b.subCompany_id = a.company_id
		   <isNotEmpty prepend="AND" property="searchKeyword">
					 a.name like '%$searchKeyword$%'
			</isNotEmpty>
		   <include refid="getOrderCondition" />
	</select>

  基础

 

	<select id="getUserByKey" resultClass="user" parameterClass="int">
        <![CDATA[
			select  a.id				
			  , a.company_id	companyId
			  , a.name		
			  , a.username		userName
			  , a.password	
			  , a.email
			  , a.phone
			  , a.company_name	companyName
			  , a.address1
			  , a.address2
			  , a.signature
			  , a.description
			  , ifnull(b.role_id, 0)		roleId
               from user a  left join user_role b on a.id = b.user_id
               where a.id = #value#
			   ]]>
	</select>

 

 

 

<sql id="getQueryCondition">
		<isNotEmpty prepend="AND" property="searchKeyword">
				<![CDATA[
					user.name like '%$searchKeyword$%'
				]]>
			</isNotEmpty>
			<isNotEmpty prepend="AND" property="start">
				<![CDATA[
					user.created_at >= #start#
				]]>
			</isNotEmpty>
			<isNotEmpty prepend="AND" property="end">
				<![CDATA[
					user.created_at < date_add(#end#,INTERVAL 1 day)
				]]>
			</isNotEmpty>
	</sql>

	<sql id="getOrderCondition">
		<isNotEmpty prepend="order by"  property="user.sortField">
					<![CDATA[ $user.sortField$  ]]>
			</isNotEmpty>
			<isEmpty prepend="order by"  property="user.sortField">
					<![CDATA[ user.created_at ]]>
			</isEmpty>
			<isNotEmpty  property="user.orderBy">
					<![CDATA[ $user.orderBy$ ]]>
			</isNotEmpty>

			<isGreaterThan property="user.page" compareValue="0">
				<isGreaterThan property="user.pageSize" compareValue="0">
					<![CDATA[ limit $user.pos$ , $user.pageSize$ ]]>
				</isGreaterThan>
			</isGreaterThan>
	</sql>

 

 

	<select id="getUserByUserName" resultClass="user" parameterClass="string">
		<![CDATA[
		SELECT
				  a.id
				, a.company_id		companyId
				, a.username		userName
				, a.name
				, a.password
				, a.user_type			userType
		FROM	  user a
		WHERE	a.username = #userName#
		AND		a.is_deleted = 'false'
		AND		a.company_id NOT IN (SELECT b.subCompany_id FROM company_subCompany b)
		]]>
	</select>

 

 

	<select id="getUserByKey" resultClass="user" parameterClass="int">
        <![CDATA[
			select  a.id				
			  , a.company_id	companyId
			  , a.name		
			  , a.username		userName
			  , a.password	
			  , a.email
			  , a.phone
			  , a.company_name	companyName
			  , a.address1
			  , a.address2
			  , a.signature
			  , a.description
			  , ifnull(b.role_id, 0)		roleId
               from user a  left join user_role b on a.id = b.user_id
               where a.id = #value#
			   ]]>
	</select>

 

分享到:
评论

相关推荐

    iBATIS SQL Maps官方中文教程.rar

    iBATIS SQL Maps官方中文教程.rar 集中了iBATIS基础教程2.0以及SQL Maps的学习基础。

    ibatis sqlserver代码自动生成

    网上关于ibatis代码自动生成的例子不少,但是让人还是感到一头雾水,本文附添加过程以及基础包。

    C# IBatis IBatis基础 完整项目

    这个是初学 I batis学习的 , 我在网上找了很长时间都没有看到有 关于C#的Ibatis的例子,所以我上次了一个自己做的例子 供鸟儿们学习用。 全是自己写的,并且 很详

    iBATIS框架源码剖析

    本书分为三个部分,第一部分是介绍iBATIS的一些基础知识;第二部分是介绍iBATIS DAO的框架结构及其实现;第三部分是针对iBATIS的底层平台iBATIS SQL Map进行 资源太大,传百度网盘了,链接在附件中,有需要的同学...

    iBATIS-SqlMaps-2_en.pdf

    ibatis的基础知识,非常好的一个学习资料,请大家下载学习共同进步。共同交流经验。

    iBATIS实战.pdf

    书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。《iBATIS实战》的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该...

    eclipse+spring+ibatis搭建项目基础代码

    自己亲自用eclipse+spring+ibatis搭建的基本框架,含有所需的JAR包,下载后只需更改sql2005的连接字符串,即WEB-INF/db-context.xml中的配置,并更改ibatis的xml文件中的sql语句即可运行。

    ibatis生成实体工具

    ibatis生成实体工具,不用再写itabis的基础sql和bean了

    iBATIS实战

    书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...

    iBATIS实战 iBATIS In Action PDF Part 3/3

    书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...

    iBATIS实战 iBATIS In Action PDF Part 1/3

    书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...

    iBATIS实战 iBATIS In Action PDF Part 2/3

    书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...

    iBATIS实战.pdf 中文完整版

    书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...

    持久层框架ibatis学习笔记

    总之,学习iBatis 是非常容易上手的,有过sql 和Hibernate 的基础,我跟着传智播客的视频 学了几个小时就掌握了iBatis 的核心操作。当然iBatis 还有一些更深层的原理与更强大的功 能,我没有去深思,学了iBatis 对...

    ibatis实战

    书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...

    ibatis实战_带书签版part2

    书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...

    iBATIS实战—带书签版part1

    书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...

    ibatis 开发指南(pdf)

    %m%n log4j.logger.java.sql.PreparedStatement=DEBUG 构建ibatis 基础代码 ibatis 基础代码包括: 1. ibatis 实例配置 一个典型的配置文件如下(具体配置项目的含义见后): &lt;?xml version=...

    一个很基础的ibatis的例子(含增删改查)

    核心提示:实例实现了6个基本功能: 1.向数据库student表插入一条数据 2.删除student表的所有数据...数据库为SQL Server 2005 此资源是根据前辈们写的文档做的。http://blog.csdn.net/jimmy292/article/details/5698618

    iBATIS实战.pdf第一部分

    本书是讲述iBATIS框架的权威著作。书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。

Global site tag (gtag.js) - Google Analytics