TangYuan使用教程-SQL服务及标签介绍
2016-11-30 00:00
239 查看
#6.1 SQL服务及标签介绍
什么是SQL服务?SQL服务的本质是一个服务,包含了一系列的SQL语句和XML标签。SQL服务分为基本SQL服务和组合SQL服务,基本服务就是一条完整的SQL语句和标签构成的服务,比如:
而组合SQL服务是由一系列的基本服务和标签组成,是一个服务集合,比如:
SQL服务的编写位置:所有的SQL服务都需要写在SQL服务文件中:如:
对于一个SQL服务,SQL语句本身没有什么新奇的内容,下面更多的是介绍SQL服务的标签。Tangyuan中的sqlservices标签分为两类,一类是服务标签,表示此标签代表了一个SQL服务,应用程序可以直接访问和调用,包括如下标签:
| 标签 | 说明 |
| :-- | :--|
| selectSet | 查询一个结果集,如select * from user<br />如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。|
| selectOne | 查询一条记录,如select * from user where id = 1<br />如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。|
| selectVar | 查询一条记录中一个指定的字段,如select name from user where id = 1<br />如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。|
| update | 更新操作,如update user set name ......<br />如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。|
| delete | 删除,如DELETE FROM user where ...<br />如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。|
| insert | 插入,如INSERT into user ....<br />如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。|
| sql-service | 组合SQL服务标签,包含一些其他的服务标签和辅助标签,但不能包含自身标签|
| sql | 定义一些公共的SQL语句,供其他SQL服务调用,此标签服务不能单独调用,也不能包含在其他标签内。|
另一类是辅助标签,通过这些辅助标签,可实现一些复杂的服务功能,有如下标签:
| 标签 | 说明 |
| :-- | :--|
| if | 条件控制标签,比如:
| elseif | 条件控制标签,需要和if标签配合使用,比如:
| else | 条件控制标签,需要和elseif标签配合使用,比如:
| foreach | 循环遍历标签,比如:<br />
| return | 结果返回标签,只能在sql-service内使用,比如:<br />
| exception | 异常标签,当条件检测失败的时候会跑出异常,中断服务,只能在sql-service内使用,<br />如:
| setvar | 变量设置标签,在XML中给一个变量赋值,只能在sql-service内使用,比如:<br />
| log | 日志打印标签,用于服务流程的检测和日志的输出,只能在sql-service内使用,比如:<br />
| call | 服务调用标签,在XML中调用其他服务,包括SQL服务,只能在sql-service内使用。|
| transGroup | 事务组表,表示该标签内的SQL将会运行在一个新的事务当中,只能在sql-service内使用。|
| include | SQL包含标签,可以引入之前sql标签定义的SQL语句内容。|
什么是SQL服务?SQL服务的本质是一个服务,包含了一系列的SQL语句和XML标签。SQL服务分为基本SQL服务和组合SQL服务,基本服务就是一条完整的SQL语句和标签构成的服务,比如:
<selectOne id="getUserById"> SELECT * from user WHERE user_id = #{user_id} </selectOne>
而组合SQL服务是由一系列的基本服务和标签组成,是一个服务集合,比如:
<sql-service id="insertAndGet" txRef="tx_01" dsKey="ds"> <!-- 插入一条记录 --> <insert rowCount="{nCount}" incrementKey="{user_id}"> INSERT into user(user_name, user_age, create_time) VALUES(#{user_name}, #{user_age}, #{create_time|now()}) </insert> <!-- 打印一条日志 --> <log message="插入一条用户数据: {user_name}, nCount: {nCount}, user_id: {user_id}"/> <!-- 查询用户列表 --> <selectSet resultKey="{users}"> SELECT * from user </selectSet> <!-- 返回 --> <return> <property value="{users}"/> </return> </sql-service>
SQL服务的编写位置:所有的SQL服务都需要写在SQL服务文件中:如:
tangyuan-sqlservices.xml,详细规范可参考
tangyuan-sqlservices.xsd文件,该文件位于
src\main\java\org\xson\tangyuan\xml\schema
对于一个SQL服务,SQL语句本身没有什么新奇的内容,下面更多的是介绍SQL服务的标签。Tangyuan中的sqlservices标签分为两类,一类是服务标签,表示此标签代表了一个SQL服务,应用程序可以直接访问和调用,包括如下标签:
| 标签 | 说明 |
| :-- | :--|
| selectSet | 查询一个结果集,如select * from user<br />如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。|
| selectOne | 查询一条记录,如select * from user where id = 1<br />如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。|
| selectVar | 查询一条记录中一个指定的字段,如select name from user where id = 1<br />如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。|
| update | 更新操作,如update user set name ......<br />如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。|
| delete | 删除,如DELETE FROM user where ...<br />如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。|
| insert | 插入,如INSERT into user ....<br />如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。|
| sql-service | 组合SQL服务标签,包含一些其他的服务标签和辅助标签,但不能包含自身标签|
| sql | 定义一些公共的SQL语句,供其他SQL服务调用,此标签服务不能单独调用,也不能包含在其他标签内。|
另一类是辅助标签,通过这些辅助标签,可实现一些复杂的服务功能,有如下标签:
| 标签 | 说明 |
| :-- | :--|
| if | 条件控制标签,比如:
<if test="{x} < 0">|
| elseif | 条件控制标签,需要和if标签配合使用,比如:
<elseif test="{x} < 1">|
| else | 条件控制标签,需要和elseif标签配合使用,比如:
<else>|
| foreach | 循环遍历标签,比如:<br />
<foreach collection="{ids}" index="{i}">|
| return | 结果返回标签,只能在sql-service内使用,比如:<br />
<return value="{set}" />|
| exception | 异常标签,当条件检测失败的时候会跑出异常,中断服务,只能在sql-service内使用,<br />如:
<exception test="{x} > 1" code="1" message="错误提示信息" />|
| setvar | 变量设置标签,在XML中给一个变量赋值,只能在sql-service内使用,比如:<br />
<setvar key="{x}" value="1" />|
| log | 日志打印标签,用于服务流程的检测和日志的输出,只能在sql-service内使用,比如:<br />
<log level="info" message="日志信息" />|
| call | 服务调用标签,在XML中调用其他服务,包括SQL服务,只能在sql-service内使用。|
| transGroup | 事务组表,表示该标签内的SQL将会运行在一个新的事务当中,只能在sql-service内使用。|
| include | SQL包含标签,可以引入之前sql标签定义的SQL语句内容。|
相关文章推荐
- TangYuan使用教程-SQL服务及标签介绍
- TangYuan使用教程-组合SQL服务标签
- TangYuan使用教程-基本SQL服务标签
- TangYuan使用教程-基本SQL服务标签
- 实际项目开发中需要的格式化标签以及JSTL标签库介绍【1核心标签(用得最多)2 国际化标签(I18N格式化标签) 数据库标签(SQL标签,很少使用) XML标签(几乎不用) JSTL函数(EL函数)】
- TangYuan使用教程-功能介绍
- DEDECMS万能标签{dede:sql}使用教程详解
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- 精通Flex 3.0――14.5.3 使用Message服务的Flex类库和标签介绍
- TangYuan使用教程-XML介绍
- TangYuan使用教程-XML介绍
- 帝国CMS教程使用技巧自定义列表标签SQL数据调用实例
- TangYuan使用教程-功能介绍
- SQL Server SQL Agent服务使用教程小结
- TangYuan使用教程-辅助标签使用
- SQL Server SQL Agent服务使用教程小结
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- 科讯CMS--使用sql标签在商品内容页调用品牌详情,如品牌名称,图片,介绍等
- Scott Mitchell 的ASP.NET 2.0数据教程之61:使用SQL Cache Dependencies
- Scott Mitchell 的ASP.NET 2.0数据教程之50:对SqlDataSource控件使用开放式并发