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 ...
随机推荐
- HighCharts入门
一.什么是HighCharts 1.HighCharts是网页报表工具,开发语言是Javascript. 2.HighCharts是一个简单易用.美观.跨平台.跨浏览器的图表工具. 3.HighCha ...
- [转自51CTO]ITIL与ISO20000的关系
ITIL它不是一个服务管理标准,而更应该说是一种结构化的方法或流程框架.基于这种方法和框架,已经有越来越多的IT服务管理标准被开发出来了.在这些基于ITIL的IT服务管理标准中,最突出的要属英国标准B ...
- PHP Static Self 的区别
<?php class Human{ public static function whoami() { echo "来自父类的whoami"; } public stati ...
- 【转】在.Net中关于AOP的实现
原文地址:http://www.uml.org.cn/net/201004213.asp 一.AOP实现初步 AOP将软件系统分为两个部分:核心关注点和横切关注点.核心关注点更多的是Domain Lo ...
- Radeon HD 7850 vs Radeon R9 270X
Radeon HD 7850 vs Radeon R9 270X HW compare Intro The Radeon HD 7850 comes with a GPU core speed ...
- Cent OS 6.6 下安装mysql(5.5.20)和 PHP(5.3.10)
0.准备步骤(没有连接网络的 linux): 挂载光盘.让网络 yum 源失效.修改光盘 yum 文件.安装 c 语言编译器 gcc. 1.MySQL(5.5.20) 下载 mysql 5.5.20 ...
- Yii源码阅读笔记(九)
Behvaior类,Behavior类是所有事件类的基类: namespace yii\base; /** * Behavior is the base class for all behavior ...
- bower 基本应用
1.安装 npm install -g bower 2.指定下载目录: 在根目录建立文件 .bowerrc { "directory": "vendor/bower_d ...
- 四 mybatis开发dao的方法
mybatis开发dao的方法 1.1 SqlSession使用范围 1.1.1 SqlSessionFactoryBuilder //以流的方式读取总的配置文件 Reader rea ...
- jq窗口类小问题
if ($(window).height() + $(window).scrollTop() >= $(document.body).height() - options.marginBotto ...