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 ...
随机推荐
- c++ vector 的使用
vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1. 首先在程 ...
- ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机
ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机 使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linu ...
- Web前端开发规范文档你需要知道的事--HTML、css、js、文档等需要规范内容
规范目的 为提高团队协作效率,便于后台人员添加功能及前端后期优化维护,输出高质量的文档,特制订此文档.本规范文档一经确认,前端开发人员必须按本文档规范进行前台页面开发.本文档如有不对或者不 ...
- ckeditor的详细配置
CKEditor 3 JavaScript API Documentation : http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.con ...
- 【C语言】17-预处理指令3-文件包含
这讲介绍最后一个预处理指令---文件包含 一.基本概念 其实我们早就有接触文件包含这个指令了, 就是#include,它可以将一个文件的全部内容拷贝另一个文件中. 二.一般形式 1.第1种形式#inc ...
- Everything文件名实时搜索||解决局域网文件共享问题
内容概要:Everything中文版下载地址及使用.用Everything轻松解决局域网文件共享问题.Everything语言设置问题 另:Everything只支持NTFS格式的磁盘(工作原理的缘故 ...
- 简单的form表单操作(Servlet)
Servlet模型 [表单的处理][模型(1)] ●HTML网页 <!DOCTYPE html> <html> <head> <meta charset=&q ...
- OpenCV学习笔记——多种Smooth平滑处理
opencv库提供了好几种模糊平滑Smooth操作的类型作为cvSmooth的参数传入,从而达到不同的平滑效果,另外复习了一下如何复制一份图像和重新调整图像大小. 调整图像大小目前是按照一下步骤进行: ...
- Maven问题总结:could not resolve archetype xxxxxxx from any of the configured repositories
错误提示 Eclipse中通过Archetype创建Maven项目时报错:Could not resolve archetype xxxxxxx from any of the configured ...
- 【转载】wireshark:no interface can be used for capturing in this system with the current configuration
转自:wireshark:no interface can be used for capturing in this system with the current configuration 通过 ...