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 ...
随机推荐
- 【POJ】1062 昂贵的聘礼(spfa)
http://poj.org/problem?id=1062 此题一开始果断想到暴力.. 但是n<=100果断不行. 一看题解,噗!最短路... 构图很巧妙. 每一个物品对应的所需物品相当于一个 ...
- Codeforces Round# 305 (Div 1)
[Codeforces 547A] #include <bits/stdc++.h> #define maxn 1000010 using namespace std; typedef l ...
- COJ966 WZJ的数据结构(负三十四)
WZJ的数据结构(负三十四) 难度级别:C: 运行时间限制:20000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 给一棵n个节点的树,请对于形如"u ...
- CentoS 下报的 Requires: perl(:MODULE_COMPAT_5.8.8)
yum error requires: libtcmalloc.so.4 rpm -Uvh http://ceph.com/rpm-cuttlefish/el6/x86_64/ceph-release ...
- [转]Visual Studio 实用扩展推荐
本文转自 http://www.cnblogs.com/stg609/p/3726898.html Visual Studio 拥有非常不错的可扩展性,在之前的文章中,我也给大家示范了如何进行编辑器的 ...
- 浅谈RAID写惩罚(Write Penalty)与IOPS计算
介绍 通常在讨论不同RAID保护类型的性能的时候,结论都会是RAID-1提供比较好的读写性能,RAID-5读性能不错,但是写入性能就不如RAID-1,RAID-6保护级别更高,但写性能相对更加差,RA ...
- 清橙 A1206 小Z的袜子(莫队算法)
A1206. 小Z的袜子 时间限制:1.0s 内存限制:512.0MB 总提交次数:1357 AC次数:406 平均分:46.75 将本题分享到: 查看未格式化的试题 ...
- setInterval 启用和停止,见代码
<title></title> <script src="Scripts/jquery-1.4.1-vsdoc.js" type="t ...
- IP_TOS选项
voip IP_tos 选项 在IP头中,有一Type-of-Service字段,该字段描述了IP包的优先级和QoS选项,使用IP_TOS可以来设定该字段的值,以区分不同服务的优先级,Linux 中可 ...
- Memcached 笔记与总结(1)Linux(CentOS 6.6) 和 Windows(7)下安装与配置 Memcached (1.4.24)与 Memcached 基础命令
Memcached 官方网站:http://memcached.org/ 官网对其的描述是: What is Memcached? Free & open source, high-perfo ...