mybatis的xlm的sql
<sqlMap namespace="egis.scms.order">
<typeAlias alias="ScmsOrderDTO" type="com.paic.egis.scms.order.dto.ScmsOrderDTO"></typeAlias>
<typeAlias alias="ScmsOrderInsureDTO" type="com.paic.egis.scms.order.dto.ScmsOrderInsureDTO"></typeAlias>
<!-- 生成序列号 action中通过这一个select查询到一个序列号,此序列号再从java中传入sql中-->
<select id="generateSCMSOrderInsureId" resultClass="string">
select nextval('scms_order_insure_seq')
</select>
<sql id="withFlag">
<isEqual prepend="and" property="flag" compareValue="2">
<![CDATA[
o.order_status in ('03','07')
]]>
</isEqual>
<isEqual prepend="and" property="flag" compareValue="3">
<![CDATA[
o.order_status in ('02','04','05','06','08')
]]>
</isEqual>
<isEqual prepend="and" property="flag" compareValue="4">
<![CDATA[
o.order_status in ('09','10','15')
]]>
</isEqual>
</sql>
<!-- 订单总数查询 -->
<select id="getCountByStatus" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
select count(0) as "orderCount"
from scms_order o
where o.user_id=#userId#
and o.pay_channel = #payChannel#
and o.order_client_type = #orderClientType#
<include refid="withFlag" />
</select>
<!-- 创建订单 -->
<insert id ="createScmsOrder" parameterClass="java.util.HashMap">
INSERT INTO scms_order(
id_scms_order,
order_date,
order_status,
is_upload,
order_client_type,
order_channel,
order_amount,
user_id,
business_type,
pay_channel,
pay_medical_no,
bank_name,
bank_no,
is_change_pay,
pay_account_no
)
VALUES (
'OD' || lpad(#idScmsOrder#, 14, '0'),
to_timestamp(#orderDate#,'yyyy-mm-dd hh24:mi:ss'),
#orderStatus#,
'01',
#orderClientType#,
#orderChannel#,
#orderAmount#,
#userId#,
#businessType#,
#payChannel#,
#payMedicalNo#,
#bankName#,
#bankNo#,
#isChangePay#,
#payAccountNo#
);
</insert>
<!-- 查询订单列表-->
<select id="orderList" resultClass="java.util.HashMap" parameterClass="java.util.HashMap">
select
o.id_scms_order as "idScmsOrder",
o.order_date as "orderDate",
o.order_status as "orderStatus",
op.id_scms_product as "idScmsProduct",
o.order_status as "orderStatus"
from scms_order o,
scms_order_product op
where o.id_scms_order=op.id_scms_order
and o.user_id=#userId#
and o.pay_channel = #payChannel#
and o.order_client_type = #orderClientType#
and o.order_status in ('02','03','04','05','06','07','08','09','10')
</select>
<!-- 分页查询订单列表-->
<select id="orderListByFlagPage" resultClass="java.util.HashMap" parameterClass="java.util.HashMap">
select
o.id_scms_order as "idScmsOrder",
o.order_date as "orderDate",
o.order_status as "orderStatus",
op.id_scms_product as "idScmsProduct",
o.order_status as "orderStatus"
from scms_order o,
scms_order_product op
where o.id_scms_order=op.id_scms_order
and o.user_id=#userId#
and o.pay_channel = #payChannel#
and o.order_client_type = #orderClientType#
<include refid="withFlag" />
order by o.id_scms_order desc
<isNotEmpty property="offset">
limit #pageSize# offset #offset#
</isNotEmpty>
</select>
<!-- 新增投保-被保人信息 -->
<insert id ="insertOrderApplicInsur" parameterClass="java.util.HashMap">
<selectKey resultClass="java.lang.String" keyProperty="idOrderIns">
select sys_guid()--生成序列号。也可以直接在列的赋值处直接写sys_guid()
</selectKey>
INSERT INTO scms_application_insured
(id_order_ins,
id_order_policy,
ins_user_name,
ins_gender,
ins_birth_date,
ins_id_type,
ins_id_no,
br_no,
applicant_relation
)
VALUES (
#idOrderIns#,// 此处可以直接写为sys_guid();不需要上面那一步
#idOrderPolicy#,
#insUserName#,
#insGender#,
to_date(#insBirthDate#,'yyyy-mm-dd'),
#insIdType#,
#insIdNo#,
#brNo#,
#applicantRelation#
)
</insert>
<update id="updateOrderInfo" parameterClass="java.util.HashMap">
UPDATE scms_order
<dynamic prepend="set">
<isNotEmpty prepend="," property="orderStatus">
order_status=#orderStatus#
</isNotEmpty>
<isNotEmpty prepend="," property="failReason">
fail_reason=#failReason#
</isNotEmpty>
<isNotEmpty prepend="," property="failCode">
fail_code=#failCode#
</isNotEmpty>
<isNotEmpty prepend="," property="transactionId">
transaction_id=#transactionId#
</isNotEmpty>
<isNotEmpty prepend="," property="transactionDate">
transaction_date=to_timestamp(#transactionDate#,'YYYY-MM-DD HH24:MI:SS')
</isNotEmpty>
<isNotEmpty prepend="," property="payDate">
pay_date=to_timestamp(#payDate#,'YYYY-MM-DD HH24:MI:SS')
</isNotEmpty>
<isNotEmpty prepend="," property="payChannel">
pay_channel=#payChannel#
</isNotEmpty>
<isNotEmpty prepend="," property="payAccountNo">
pay_account_no=#payAccountNo#
</isNotEmpty>
<isNotEmpty prepend="," property="bankName">
bank_name=#bankName#
</isNotEmpty>
<isNotEmpty prepend="," property="bankNo">
bank_no=#bankNo#
</isNotEmpty>
<isNotEmpty prepend="," property="thirdOrderId">
third_order_id=#thirdOrderId#
</isNotEmpty>
<isNotEmpty prepend="," property="reundwrtFlag">
reundwrt_flag=#reundwrtFlag#
</isNotEmpty>
<isNotEmpty prepend="," property="transactionThirdId">
transaction_third_id=#transactionThirdId#
</isNotEmpty>
<isNotEmpty prepend="," property="isUpload">
is_upload=#isUpload#
</isNotEmpty>
<isNotEmpty prepend="," property="orderAmount">
order_amount=#orderAmount#
</isNotEmpty>
</dynamic>
where id_scms_order=#idScmsOrder#
</update>
<update id="updateOrderInfoByThirdId" parameterClass="java.util.HashMap">
UPDATE scms_order
<dynamic prepend="set">
<isNotEmpty prepend="," property="orderStatus">
order_status=#orderStatus#
</isNotEmpty>
<isNotEmpty prepend="," property="failReason">
fail_reason=#failReason#
</isNotEmpty>
<isNotEmpty prepend="," property="failCode">
fail_code=#failCode#
</isNotEmpty>
<isNotEmpty prepend="," property="transactionId">
transaction_id=#transactionId#
</isNotEmpty>
<isNotEmpty prepend="," property="transactionDate">
transaction_date=to_timestamp(#transactionDate#,'YYYY-MM-DD HH24:MI:SS')
</isNotEmpty>
<isNotEmpty prepend="," property="payDate">
pay_date=to_timestamp(#payDate#,'YYYY-MM-DD HH24:MI:SS')
</isNotEmpty>
<isNotEmpty prepend="," property="payChannel">
pay_channel=#payChannel#
</isNotEmpty>
<isNotEmpty prepend="," property="payAccountNo">
pay_account_no=#payAccountNo#
</isNotEmpty>
<isNotEmpty prepend="," property="bankName">
bank_name=#bankName#
</isNotEmpty>
<isNotEmpty prepend="," property="bankNo">
bank_no=#bankNo#
</isNotEmpty>
<isNotEmpty prepend="," property="thirdOrderId">
third_order_id=#thirdOrderId#
</isNotEmpty>
<isNotEmpty prepend="," property="reundwrtFlag">
reundwrt_flag=#reundwrtFlag#
</isNotEmpty>
</dynamic>
where transaction_third_id=#transactionThirdId#
</update>
<!-- 查询订单列表,并且关联用户信息 (总记录数) -->
<select id="count_orderListForPay" resultClass="java.lang.Integer"
parameterClass="java.util.HashMap">
select count(0) from (
<include refid="sql_orderListForPay" />
) as t
</select>
<!-- 查询订单列表,并且关联用户信息 (分页查询) -->
<select id="orderListForPay" resultClass="com.paic.egis.scms.pay.dto.PayOrderDTO"
parameterClass="java.util.HashMap">
<include refid="sql_orderListForPay" />
order by idScmsOrder desc
<isNotEmpty property="offset">
limit #pageSize# offset #offset#
</isNotEmpty>
</select>
<!-- 生成订单产品号 -->
<select id="generateSCMSOrderProductId" resultClass="string">
select nextval('scms_order_product_seq')
</select>
<select id="queryOrderInsureList" resultClass="com.paic.egis.scms.order.dto.ScmsOrderInsureDTO"
parameterClass="java.util.HashMap">
SELECT
i.id_order_policy AS idOrderPolicy,
i.appno AS appNo,
i.polno AS polNo,
i.certno AS certNo,
i.issure_date AS issureDate,
i.underwt_date AS underwtDate
FROM
scms_order_insure i
<dynamic prepend="where">
<isNotEmpty prepend="and" property="idOrderProduct">
i.id_order_product = #idOrderProduct#
</isNotEmpty>
<isNotEmpty prepend="and" property="idOrderPolicy">
i.id_order_policy = #idOrderPolicy#
</isNotEmpty>
</dynamic>
</select>
<update id ="updateScmsOrderProduct" parameterClass="java.util.HashMap">
update scms_order_product
<dynamic prepend="set">
<isNotEmpty prepend="," property="idScmsProduct">
id_scms_product=#idScmsProduct#
</isNotEmpty>
<isNotEmpty prepend="," property="idInsurPrdCombined">
id_insur_prd_combined=#idInsurPrdCombined#
</isNotEmpty>
<isNotEmpty prepend="," property="effDate">
eff_Date=to_timestamp(#effDate#,'yyyy-mm-dd hh24:mi:ss')
</isNotEmpty>
<isNotEmpty prepend="," property="matuDate">
matu_date=to_timestamp(#matuDate#,'yyyy-mm-dd hh24:mi:ss')
</isNotEmpty>
<isNotEmpty prepend="," property="empNo">
emp_no=#empNo#
</isNotEmpty>
<isNotEmpty prepend="," property="participatorCode">
participator_Code=#participatorCode#
</isNotEmpty>
<isNotEmpty prepend="," property="insurerName">
insurer_Name=#insurerName#
</isNotEmpty>
<isNotEmpty prepend="," property="insurerGender">
insurer_Gender=#insurerGender#
</isNotEmpty>
<isNotEmpty prepend="," property="insurerBirthDate">
insurer_birth_date=to_date(#insurerBirthDate#,'yyyy-mm-dd')
</isNotEmpty>
<isNotEmpty prepend="," property="insurerIdType">
insurer_id_type=#insurerIdType#
</isNotEmpty>
<isNotEmpty prepend="," property="insurerIdNo">
insurer_id_no=#insurerIdNo#
</isNotEmpty>
<isNotEmpty prepend="," property="sinsurPeriodType">
sinsur_period_type=#sinsurPeriodType#
</isNotEmpty>
<isNotEmpty prepend="," property="insurPeriod">
insur_period=#insurPeriod#
</isNotEmpty>
<isNotEmpty prepend="," property="memberDiscount">
member_discount=#memberDiscount#
</isNotEmpty>
<isNotEmpty prepend="," property="idInsurPrdItem">
id_insur_prd_item=#idInsurPrdItem#
</isNotEmpty>
<isNotEmpty prepend="," property="idInsurPrdItem">
base_price=#basePrice#
</isNotEmpty>
<isNotEmpty prepend="," property="coverageAmount">
coverage_amount=#coverageAmount#
</isNotEmpty>
<isNotEmpty prepend="," property="combinedPlanCode">
combined_plan_code=#combinedPlanCode#
</isNotEmpty>
</dynamic>
<dynamic prepend="where">
<isNotEmpty prepend="and" property="idOrderProduct">
id_order_product=#idOrderProduct#
</isNotEmpty>
<isNotEmpty prepend="and" property="idScmsOrder">
id_scms_order= #idScmsOrder#
</isNotEmpty>
</dynamic>
</update>
<select id="queryItemByCombinedID" resultClass="java.util.HashMap" parameterClass="java.util.List">
SELECT
ID_INSUR_PRD_ITEM "insurPrdItemId",
ID_INSUR_PRD_COMBINED "insurPrdCombinedId",
ITEM_NAME "itemName",
ITEM_DESC "itemDesc",
PLAN_CODE "planCode",
UNDWRT_RANGE "undwrtRange"
FROM
SCMS_INSUR_PRODUCT_ITEM
WHERE
ID_INSUR_PRD_COMBINED in
<iterate open="(" close=")" conjunction=","> #[]# </iterate>
</select>
以上不需要把list的name值传到sql中,跟=#name值#是不一样的。这里不需要写
// List<String> combinedParamList = new ArrayList<String>();
// for(Map<String, Object> map : combineList){
// combinedParamList.add((String)map.get(combinedIdCloumn));
// }
// List<Map<String, Object>> itemList = insuranceProductDao
// .queryItemByCombinedList(combinedParamList);
mybatis的xlm的sql的更多相关文章
- 【mybatis深度历险系列】mybatis中的动态sql
最近一直做项目,博文很长时间没有更新了,今天抽空,学习了一下mybatis,并且总结一下.在前面的博文中,小编主要简单的介绍了mybatis中的输入和输出映射,并且通过demo简单的介绍了输入映射和输 ...
- Mybatis入门之动态sql
Mybatis入门之动态sql 通过mybatis提供的各种标签方法实现动态拼接sql. 1.if.where.sql.include标签(条件.sql片段) <sql id="sel ...
- mybatis 详解------动态SQL
mybatis 详解------动态SQL 目录 1.动态SQL:if 语句 2.动态SQL:if+where 语句 3.动态SQL:if+set 语句 4.动态SQL:choose(when,o ...
- mybatis中的动态SQL
在实际开发中,数据库的查询很难一蹴而就,我们往往要根据各种不同的场景拼接出不同的SQL语句,这无疑是一项复杂的工作,我们在使用mybatis时,mybatis给我们提供了动态SQL,可以让我们根据具体 ...
- mybatis是如何防止SQL注入的
mybatis是如何防止SQL注入的 1.首先看一下下面两个sql语句的区别: <select id="selectByNameAndPassword" parameterT ...
- MyBatis是如何解决Sql注入的
转:[转]mybatis如何防止sql注入 java中预处理PrepareStatement为什么能起到防止SQL注入的作用??!! 一.SQL注入 sql注入大家都不陌生,是一种常见的攻击方式,攻击 ...
- Atitit mybatis快速开发 的sql api接口
Atitit mybatis快速开发 的sql api接口 1.1. sql模式 开发速度大大快与 映射模式1 1.2. MyBatis Mapper1 1.2.1. 代码2 1.2.2. 原理2 1 ...
- MyBatis是支持普通 SQL查询
MyBatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis 使用简单的 XML或注解用于配置 ...
- mybatis执行多条sql语句
1,mybatis执行多条sql语句,有以下几种思路, a,存储过程 b,修改jdbc的参数,允许执行多条语句,如下所示: sqlserver可以直接使用begin,end来执行多条语句, mysql ...
随机推荐
- 【wikioi】1922 骑士共存问题(网络流/二分图匹配)
用匈牙利tle啊喂?和网络流不都是n^3的吗(匈牙利O(nm), isap O(n^2m) 但是isap实际复杂度很优的(二分图匹配中,dinic是O(sqrt(V)*E),不知道isap是不是一样. ...
- 【wikioi】1296 营业额统计
题目链接:http://www.wikioi.com/problem/1296/ 算法:Splay 这是非常经典的一道题目,用Splay树来维护营业额,每天的最小波动值就等于 min{树根-树根的前驱 ...
- COJ574 数字序列
试题描述 霸中智力测试机构的一项工作就是按照一定的规则删除一个序列的数字,得到一个确定的数列.陈思同学很渴望成为霸中智力测试机构的主管,但是他在这个工作上做的并不好,俗话说熟能生巧,他打算做很多练 ...
- javascript第二弹——函数
什么是函数 函数是一块javascript代码,被定义一次,就可以执行和调用多次:函数也是js对象,所以也可以像对象那样操作和传递:所以我们也把函数称之为函数对象: 创建函数的几种方法 一.函数声明 ...
- 深入理解JVM—性能监控工具
(转自:http://yhjhappy234.blog.163.com/blog/static/31632832201222691738865/) 我们知道,在JVM编译期和加载器,甚至运行期已经做了 ...
- SQL server 表中如何创建索引?
SQL server 表中如何创建索引?看个示例,你就会了 use master goif db_id(N'zhangxu')is not nulldrop database zhangxugocre ...
- MyLinerLayout--推荐
苹果系统的自动布局需要在布局的过程中建立各种各样的依赖,虽然后续使用masonry还算比较便捷. 有一天朋友推荐给我的这个,看了一下demo和这个库的作者的博客,了解到这个库并不是基于苹果的自动布局作 ...
- c#委托事件及其讲解
一定要标明出处,波哥的文章.所有文章都值得一看.这篇是摘抄的大白话之C#事件讲解.委托 http://www.cnblogs.com/wudiwushen/archive/2010/04/20/170 ...
- Linux环境下实现哲学家就餐问题(2)
#include <stdio.h> #include <pthread.h> #include <stdlib.h> #include <string.h& ...
- new NABCD
小组名称: 天天向上 项目名称:连连看 小组成员:王森(组长).胡丽娜.林莉.张政.张金生 新NABCD模型 N(需求) 传统的连连看有许多,玩法单一,感觉没意思,用户更希望连连看游戏增加更多的与众不 ...