您的位置:首页 > 数据库

TangYuan使用教程-SQL服务及标签介绍

2016-12-02 22:24 274 查看

6.1 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
如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。
selectOne查询一条记录,如select * from user where id = 1
如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。
selectVar查询一条记录中一个指定的字段,如select name from user where id = 1
如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。
update更新操作,如update user set name ……
如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。
delete删除,如DELETE FROM user where …
如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。
insert插入,如INSERT into user ….
如果在sql-service内使用,将变成一个辅助标签,不能被单独调用,并且部分属性的使用将会有些变化。
sql-service组合SQL服务标签,包含一些其他的服务标签和辅助标签,但不能包含自身标签
sql定义一些公共的SQL语句,供其他SQL服务调用,此标签服务不能单独调用,也不能包含在其他标签内。
另一类是辅助标签,通过这些辅助标签,可实现一些复杂的服务功能,有如下标签:

标签说明
if条件控制标签,比如:
<if test="{x} < 0">
elseif条件控制标签,需要和if标签配合使用,比如:
<elseif test="{x} < 1">
else条件控制标签,需要和elseif标签配合使用,比如:
<else>
foreach循环遍历标签,比如:
<foreach collection="{ids}" index="{i}">
return结果返回标签,只能在sql-service内使用,比如:
<return value="{set}" />
exception异常标签,当条件检测失败的时候会跑出异常,中断服务,只能在sql-service内使用,
如:
<exception test="{x} > 1" code="1" message="错误提示信息" />
setvar变量设置标签,在XML中给一个变量赋值,只能在sql-service内使用,比如:
<setvar key="{x}" value="1" />
log日志打印标签,用于服务流程的检测和日志的输出,只能在sql-service内使用,比如:
<log level="info" message="日志信息" />
call服务调用标签,在XML中调用其他服务,包括SQL服务,只能在sql-service内使用。
transGroup事务组表,表示该标签内的SQL将会运行在一个新的事务当中,只能在sql-service内使用。
includeSQL包含标签,可以引入之前sql标签定义的SQL语句内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml sql
相关文章推荐