使用mybatis 连接Oracle 数据库 xml 文件中需要注意的问题

导读:本篇文章讲解 使用mybatis 连接Oracle 数据库 xml 文件中需要注意的问题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1:首先使用模糊查询的时候

1: 在mysql 中
 select <include refid="Base_Column_List" />
        FROM a_ll_dist_g_reas_record
        <where>
            <if test="null != orgName and '' != orgName">
                org_no like concat('%',#{orgName},'%')
            </if>
            <if test="null != pReasCode and '' != pReasCode">
                and orgName  like concat('%',#{orgName},'%')
            </if>
            <if test="null != reasCode and '' != reasCode">
                and reasCode  like concat('%',#{reasCode },'%')
            </if>
            <if test="null != timeFlag and '' != timeFlag">
                and timeFlag like concat('%',#{timeFlag },'%')
            </if>
            

2:使用Orcale的时候:   需要 多包一个  concat(concat)

 select <include refid="Base_Column_List" />
        FROM a_ll_dist_g_reas_record
        <where>
            <if test="null != orgName and '' != orgName">
                orgName like concat(concat('%',#{orgName}),'%')
            </if>
            <if test="null != pReasCode and '' != pReasCode">
                and pReasCode  like concat(concat('%',#{pReasCode }),'%')
            </if>
            <if test="null != reasCode and '' != reasCode">
                and reasCode like concat(concat('%',#{reasCode }),'%')
            </if>
            <if test="null != timeFlag and '' != timeFlag">
                and timeFlag like concat(concat('%',#{timeFlag }),'%')
            </if>
         

使用${} 

            <if test="parameter.indexName != null and parameter.indexName != ''">
                and INDEX_NAME like '%${parameter.indexName}%'
            </if>

时间范围: 将字符串类型的时间转换为date 类型

       <![CDATA[]]>  中的--> []  的写什么就是什么

           <![CDATA[
                and LOGIN_TIME >= to_date(#{startLoginTime},'yyyy-MM-dd')
            ]]>
            <![CDATA[
                and LOGIN_TIME <= to_date(#{endLoginTime},'yyyy-MM-dd')
            ]]>

3:使用Oracle 连接mybatis  时, 因为有一些业务场景规定,数据库中有一下字段,在前端为非必填字段  ,所以在插入数据的时候,会少携带一下参数,但是Oracle 数据库在使用mybatis  的时候,不允许插入数据为空,就会抛出报错信息。这时我们需要在sql 语句中添加 类型字段

例子如下:

  UPDATE a_ll_dist_g_reas_record
       set
           org_no = #{orgNo,jdbcType=VARCHAR},
           org_name = #{orgName,jdbcType=VARCHAR},
           time_flag = #{timeFlag,jdbcType=VARCHAR},
           rep_flag = #{repFlag,jdbcType=VARCHAR},
           p_reas_code = #{pReasCode,jdbcType=VARCHAR},
           reas_code = #{reasCode,jdbcType=VARCHAR},
           reas_desc = #{reasDesc,jdbcType=VARCHAR},
           rep_code = #{repCode,jdbcType=VARCHAR},
           oper_name = #{operName,jdbcType=VARCHAR}
        WHERE id = #{id}

4:在判断时间类型的时候 需要注意不要把时间字段判断  空字符串

           关于时间范围的搜索条件
           <if test="startTime != null">
                and create_time &gt;= #{startTime}
            </if>
            <if test="endTime != null">
                and create_time &lt;= #{endTime}
            </if>

           不要判断是否为空字符串
                <if test="null != createTime">
                    create_time,
                </if>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/121392.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!