mybatis批量插入oracle日期date类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33229669/article/details/84136800

oracle中存储了date类型的字段,需要使用Mybatis进行批量的插入

service 层

@Override
    public List<HashMap<String, String>> getList(Model model) {
        return consultGovdataDao.getList(model);
    }

dao层

void saveBatch(ArrayList<Model> list);

mapper

 <insert id="saveBatch" parameterType="java.util.List" useGeneratedKeys="false">
        insert all
        <foreach item="item" collection="list" separator="">
            INTO CONSULT_GOVDATA
            (
            PROJECT_NAME, PROJECT_ADDRESS, PROJECT_INDUSTRY, PUBLISH_DATE
            )
            values
            (
            #{item.projectName,jdbcType=VARCHAR},
            #{item.projectAddress,jdbcType=VARCHAR},
            #{item.projectIndustry,jdbcType=VARCHAR},
            to_date(#{item.publishDate,jdbcType=DATE},'yyyy-mm-dd')
            )
        </foreach>
        select * from dual
    </insert>

其中 to_date(#{item.publishDate,jdbcType=DATE},'yyyy-mm-dd') 就是对日期类型的处理.
to_date函数第一个参数传入变量, 第二个参数传入格式化的形式.
最后实际转化成的sql如下

insert all 
INTO CONSULT_GOVDATA
  (PROJECT_NAME,
   PROJECT_ADDRESS,
   PROJECT_INDUSTRY,
   PUBLISH_DATE,
   INDUSTRY,
   PRODUCT)
values
  ('九江商采购公告', '江西', '网络计算机', to_date('2018-08-03','yyyy-mm-dd'), null,'行务') 
 INTO CONSULT_GOVDATA
  (PROJECT_NAME,
   PROJECT_ADDRESS,
   PROJECT_INDUSTRY,
   PUBLISH_DATE,
   INDUSTRY,
   PRODUCT)
values
  ('线覆盖小额采采购', '购项目', '网络通讯计算机', to_date('2018-08-03','yyyy-mm-dd'), null, '务')
  select * from dual

猜你喜欢

转载自blog.csdn.net/qq_33229669/article/details/84136800