zoukankan      html  css  js  c++  java
  • [oracle] oracle-myibatis-整理

    ==================================== insert ==========================================
    语句
    
    <insert id="insertKjtStoreOrderInfo" parameterType="com.goldenvista.kjt.entity.mapping.KjtStoreOrderInfo">
    insert into KJT_STORE_ORDER_INFO
    (
    ORDER_ID,
    ORDER_SN,
    BALANCE_PAY
    )
    values
    (
    #{orderId,jdbcType=DECIMAL},
    #{orderSn,jdbcType=VARCHAR},
    #{balancePay,jdbcType=DECIMAL}
    )
    </insert>
    ==================================== update ==========================================
    语句
    
    <update id="operModifyPassword" parameterType="java.util.Map">
    update 
    kjt_store_opreator_info s 
    set 
    s.oper_password=#{newPassword}
    where 
    s.oper_Id=#{operId}
    </update>
    ==================================== select ==========================================
    
    语句1
    
    <select id="queryKjtStoreCount" parameterType="java.util.Map" resultType="java.lang.Long">
    select
    count(*)
    FROM
    KJT_STORE_INFO S 
    where 
    s.status = '1' 
    <if test="storeNo !=null">
    and S.STORE_NO = #{storeNo}
    </if>
    <if test="longitude != null and latitude !=null">
    AND GetDistance(#{longitude},#{latitude},S.STORE_LONGITUDE,S.STORE_LATITUDE)*1000 between 0 and 5000
    </if>
    </select>
    
    # 自定义函数 计算经纬度距离
    GetDistance(#{longitude},#{latitude},S.STORE_LONGITUDE,S.STORE_LATITUDE)
    
    create or replace
    FUNCTION GetDistance(
    lat1 number,
    lng1 number,
    lat2 number,
    lng2 number) 
    RETURN NUMBER is
    earth_padius number := 6378.137;
    radLat1 number := rad(lat1);
    radLat2 number := rad(lat2);
    a number := radLat1 - radLat2;
    b number := rad(lng1) - rad(lng2);
    s number := 0;
    begin
    s := 2 *
    Asin(Sqrt(power(sin(a / 2), 2) + cos(radLat1) * cos(radLat2) * power(sin(b / 2), 2)));
    s := s * earth_padius;
    s := Round(s * 10000) / 10000;
    return s;
    end;
    
    语句2
    
    <!-- 分页查询 -->
    <select id="queryKjtStoreList" parameterType="java.util.Map" resultType="com.goldenvista.kjt.entity.message.KjtStoreInfoModel">
    SELECT * FROM ( 
    SELECT row_.*, rownum rownum_ FROM (
    SELECT 
    S.STORE_ID AS storeId,
    S.STORE_NAME AS storeName
    FROM KJT_STORE_INFO S 
    WHERE s.status = '1' 
    <if test="storeNo !=null">
    and S.STORE_NO = #{storeNo}
    </if>
    <if test="longitude != null and latitude !=null">
    AND GetDistance(#{longitude},#{latitude},S.STORE_LONGITUDE,S.STORE_LATITUDE)*1000 between 0 and 5000
    </if> 
    <if test="longitude != null and latitude !=null">
    ORDER BY GetDistance(#{longitude},#{latitude},S.STORE_LONGITUDE,S.STORE_LATITUDE)*1000 ASC
    </if>
    <if test="longitude == null and latitude ==null">
    ORDER BY S.STORE_ID desc
    </if>
    <![CDATA[ 
    ) row_ 
    WHERE rownum <=#{endRecord} 
    ) 
    WHERE rownum_ >#{startRecord}
    ]]>
    </select>
    
    语句3
    
    <!-- 查询推荐门店商品列表数目 -->
    <select id="queryKjtStoreGoodsCount" parameterType="java.util.Map" resultType="java.lang.Long">
    select count(*)
    from KJT_STORE_GOODS_INFO g
    where g.STORE_ID = #{storeId}
    and (g.GOODS_NAME like '%' || #{keyword} || '%' or g.GOODS_SN like '%' || #{keyword} || '%')
    </select>
    
    模糊查询 
    g.GOODS_NAME like '%' || #{keyword} || '%' 
    
    语句4
    
    <!-- 查询包含商品集合N的所有门店 -->
    <select id="queryKjtStoreListByGoods" resultType="com.goldenvista.kjt.entity.message.KjtStoreInfoModel">
    select 
    k.STORE_ID AS storeId,
    k.STORE_NAME AS storeName
    from 
    KJT_STORE_INFO k
    where k.store_id in 
    (
    SELECT S.STORE_ID
    FROM KJT_STORE_INFO S, KJT_STORE_GOODS_INFO g
    WHERE S.STORE_ID = g.STORE_ID
    and S.status = '1'
    and g.goods_id in 
    <foreach item="item" index="index" collection="goodsIds" open="(" separator="," close=")">
    #{item}
    </foreach>
    )
    <if test="keyword != null">
    and (k.STORE_NAME like '%' || #{keyword} || '%' or k.STORE_ADDRESS like '%' || #{keyword} || '%')
    </if>
    </select>
    
    语句5
    
    <select id="getStoreInfo" parameterType="java.util.Map" resultType="com.goldenvista.kjt.entity.message.StoreInfo">
    SELECT 
    s.store_id as store_id,
    s.oper_no as oper_Id,
    o.store_name as storeNmae,
    to_char(s.create_date,'yyyy-MM-dd HH24:mi:ss')
    FROM
    kjt_store_opreator_info s,kjt_store_info o
    WHERE 
    s.store_id = o.store_id
    and s.status='1' and s.oper_no = #{name} and s.oper_password =#{password}
    </select>
    
    TO_CHAR 是把日期或数字转换为字符串 
    TO_CHAR(number, '格式')
    TO_CHAR(date,’格式’)
    
    例如:
    TO_CHAR(salary,’$99,999.99’) 
    TO_CHAR(newdate,’yyyy-mm-dd’) 
    
    指定字符串的长度可以使用lpad或者rpad或者substring:
    
    lpad(字段名,填充长度,填充的字符) 左填充
    rpad(字段名,填充长度,填充的字符) 右填充
    substr( string, start_position, [ length ] )取得字符串中指定起始位置和长度的字符串
    
     
  • 相关阅读:
    Reaper自定义模板
    c#3.0 特性
    C#中下载文件出现410错误。
    使用Create task with ContentType创建任务的时候,必须先在task list中加上该ContentType
    tsmmc.msc 远程桌面
    工作流的ReplicatorActivity
    关于Windows2003的远程桌面链接数量。
    【手绘】A old painting ,drawed in middle school ,grade 8
    【Notepad++】Notepad ++ plugin Compare
    【资讯】Fight for this goal ,and better than this~
  • 原文地址:https://www.cnblogs.com/avivaye/p/3777602.html
Copyright © 2011-2022 走看看