mybatis+oracle12c 批量插入日期格式 YYYY-MM-DD

从网上搜索了一大推的答案,没有一个可以用一种简洁的办法去解决,于是经过自己的摸索下终于成功,以下是具体的过程,希望能帮到大家

1、mybaits version:3.4.0

     oracle version:12.1.0.2

     ojdbc7.jar


2、首先设置java实体,可以将日期格式的设为String类型

private String emplId;
private String effdt;//生效日期
private String relationship;//称谓
private String name;//姓名
private String sex;//性别
private String birthDate;//出生日期
private String political;//政治面貌
private String nationalId;//身份证号码
private String relatedJob;//工作单位及职务
private String phone;//电话
private String memo;//备注


3、在sql mapper.xml 里面配置,主要是插入sql语句采用to_date('1900-01-01','YYYY-MM-DD')方式,稍微懂点oracle sql语法都知道

<insert id="saveSocialRelation" parameterType="SocialRelation" useGeneratedKeys="false">
INSERT INTO PS_ASP_SOCIAL_TBL (EMPLID,EFFDT,ASP_CHENGW,ASP_NHAM,SEX,BIRTHDATE,POLITICAL_STA_CHN,NATIONAL_ID,ASP_RELATED_JOB,ASP_TEL,ASP_MEMO)
(
<foreach collection="list" item="item" index="index" separator="union all">
SELECT 
#{item.emplId},to_date(#{item.effdt,jdbcType=DATE},'YYYY-MM-DD'),#{item.relationship},#{item.name},#{item.sex},

                                 to_date(#{item.birthDate,jdbcType=DATE},'YYYY-MM-DD'),
#{item.political},#{item.nationalId},#{item.relatedJob},#{item.phone},#{item.memo,javaType=string,jdbcType=CLOB}
FROM DUAL
</foreach>
)
</insert>


注意:如果采用to_date()方式插入,那么必须要保证java 实体日期字段为String 类型,若为java.sql.Date,或java.util.Date都会报错

另外发现mybaits 插入 clob 类型有问题,有知道的可以回复




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值