mybatis 中Oracle 函数 TO_CHAR(deliveryTime,‘yyyy-mm-dd hh24:mi:ss’) 的用法:

public int insertPayDetailInfo(@Param("serialNumber") String serialNumber,@Param("list") List<LongDistancePayOaDetailDto> longDistancePayOaDetailDtos);
<!-- 方法实现 -->
  <insert id="insertPayDetailInfo">
        INSERT INTO UF_CYHTZFSHLCZJB_DT1 (
        LSH,MXBH,DZLX,HTZFLX,FCBH,FCSJ,HTJE,YFJE,SFJE,BZGS,KKLX,CP
        <foreach collection="list" item="ldpodd" separator="union"
                 open="select serialNumber,ldPayDetailNumber,documentType,contractPayType,deliveryNumber,TO_CHAR(deliveryTime,'yyyy-mm-dd hh24:mi:ss'),contractAmount,
                 amountPayble,actualPaidAmount,submitCompany,chargeType,licencePlateNumber from(" close=")">
            SELECT
            #{serialNumber, jdbcType=VARCHAR} serialNumber,
            #{ldpodd.ldPayDetailNumber, jdbcType=VARCHAR} ldPayDetailNumber,
            #{ldpodd.documentType, jdbcType=VARCHAR} documentType,
            #{ldpodd.contractPayType, jdbcType=VARCHAR} contractPayType,
            #{ldpodd.deliveryNumber, jdbcType=VARCHAR} deliveryNumber,
            #{ldpodd.deliveryTime, jdbcType=VARCHAR} deliveryTime,
            <!--  TO_CHAR( #{ldpodd.deliveryTime},'yyyy-mm-dd hh24:mi:ss') deliveryTime,-->
            #{ldpodd.contractAmount, jdbcType=VARCHAR} contractAmount,
            #{ldpodd.amountPayble, jdbcType=VARCHAR} amountPayble,
            #{ldpodd.actualPaidAmount, jdbcType=VARCHAR} actualPaidAmount,
            #{ldpodd.submitCompany, jdbcType=VARCHAR} submitCompany,
            #{ldpodd.chargeType, jdbcType=VARCHAR} chargeType,
            #{ldpodd.licencePlateNumber, jdbcType=VARCHAR} licencePlateNumber
            from dual
        </foreach>
    </insert>
TO_CHAR( #{createDate, jdbcType=VARCHAR},‘yyyy-mm-dd hh24:mi:ss’) 时间为空不会报错;
TO_CHAR( #{createDate},‘yyyy-mm-dd hh24:mi:ss’) 时间为空报错。
以上代码中 #{ldpodd.deliveryTime, jdbcType=VARCHAR} deliveryTime, 指定了 deliveryTime 的类型,即使为空T O_CHAR(deliveryTime,‘yyyy-mm-dd hh24:mi:ss’) 也不会报错;其实就是 #{} 取值对 null 的处理

在这里插入图片描述
---------------------------------------------分割线,2020年8月4日17:16:01------------------------------------

这些错误很多时候都不细心引起的,如果大家也有出现些问题,希望能给大家一下提示,同时也提醒自己不要再犯相同的错误了. com/mysql/jdbc/JDBC42ResultSet : Unsupported major.minor version 52.0—-最 记录一个问题: 数据库oracle,数据库操作使用mybaties,进行分页模糊查询时(模糊查询时使用的to_char(columName,‘yyyy-MM-dd’) 函数),entity和数据库字段startDate都是Date类型,进行查询时,startDate参数类型使用String,使用Date类型时,mybaties抛出“文字与格式不匹配” to_date(‘param’,‘yyyy-MM-dd hh24:mi:ss’)同样的,使用mybaties时,传入参数得时String类型 很简单,SQL 1、报错原因数据库是oracle,持久层框架是mybatis,使用如下语句时报错&lt;select id="tysb_pro.getControlByDealUser" resultClass="hashmap" parameterClass="hashmap"&gt; select c.approve_item,to_char(c.begin_date,'YYYY'),s.type_nam... -- 四舍五入round(x,y)对x保留y为小数 select round(23.652) from dual; select round(23.652,1) from dual; select round(25.652,-1) from dual; -- 返回x按精度y截取后的值 select trunc(23.652) from dual; select t... 什么是MybatisMyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 简单来讲,就是可以通过xml和注解的方式,方便进行jd Oracle Error : ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion (actual: 3000, maximum: 4000) 有几个解决方式: 官方教程: GitHub - YSOcean/mybatisplusstudyContribute to YSOcean/mybatisplusstudy development by creating an account on GitHub.https://github.com/YSOcean/mybatisplusstudy语法详细演示例子如下: package com.ys.mybatisplusstudy; import com.baomidou.mybatisplus.core.co. <if test="query != null and query.opTimeBegin != null"> and TO_CHAR(a.OP_TIME,'yyyymmdd') <![CDATA[ >= ]]> TO_CHAR(#{query.opTimeBegin},'yyyymmdd') 说明:将库里面的日期格式数据和条件日期格式转化为字符串格式进行比较! Mybatis转义字符 也可以用另外一种,就是<![CDATA[ ]]>符号。 在mybatis中这种符号将不会解析,用于标签冲突 <![CDATA[ when min(starttime)<='12:00' and max(endtime)<='12:00' ]]> 1.ROWNUM Oracle中的rownum一般是在实现分页查询时用到,要求返回表中的前n条记录或者是中间的几条记录 参考:https://blog.csdn.net/mitedu/ar 表由表名、字段(名称+类型+约束)、记录 组成。与 java 相对应Mybatis 是apache的一个开源项目,它可以支持普通sql查询,存储过程和高级映射的优秀持久层框架。Mybatis消除了机会所有的jdbc代码和参数的手工设置以及对结果集的检索封装,它可以使用简单的xml或注解用于配置和原始映射。 数据库时间类型为DATETO_CHAR 把日期或数字转换为字符串TO_DATE 把字符串转换为数据库中的日期类型 TO_DATE(char, ‘格式’)TO_NUMBER 将字符串转换为数字 TO_NUMBER(char, ‘格式’) 项目中经常出现的查询条件是,在某一时间开始,到某一时间结束。 Java中传递过来的实体,可能是字符串类型的,所以我们把从数据库里面的时间先格式化成为字符串,然后再与用户传递过来的字符串做对比。 <if test="insuredDateStart != null and insuredDat... mybatis报序列化无效异常或类型转换异常 对使用mybatis逆向工程生成代码的实体类进行添加非全参构造方法的时候,要同时创建一个空参构造,否则就会报这个异常。跟字段类型无关,是他自己无法实现对应。 Error attempting to get column 'CAPTURE_LOCATION' from result set. Cause: dm.jdbc.driver.DMException: 类型转换异常; uncategorized SQLException; SQL state [H