mybatis+oracle12c 批量插入日期格式 YYYY-MM-DD
2016-12-23 17:55
417 查看
从网上搜索了一大推的答案,没有一个可以用一种简洁的办法去解决,于是经过自己的摸索下终于成功,以下是具体的过程,希望能帮到大家
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、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 类型有问题,有知道的可以回复
相关文章推荐
- 利用SimpleDateFormat 和MessageFormat 向数据库中插入yyyy-mm-dd 和yyyy-MM-dd HH:mm:ss的日期格式
- rdlc报表的日期格式"yyyy/mm/dd 00/00/00"转换为"yyyy-mm-dd"
- js获取当前日期方法(YYYY-MM-DD格式)
- excel转换日期格式,将yyyymmdd类型日期转换成yyyy-mm-dd等日期类型方法
- 黑马程序员 测试题:编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天
- 在EXCEL中怎样批量把时间格式yyyy/mm/dd改为文本格式的yyyy-mm-dd
- 正则表达式匹配日期格式yyyy-mm-dd(支持闰年)
- 正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式
- 匹配yyyy-mm-dd日期格式的的正则表达式[转]
- js把字符串(yyyymmdd)格式转换成日期格式(yyyy-mm-dd)
- 【原创】Js:日期处理(日期格式必须【yyyy-mm-dd】才能转成long的毫秒!其他的不是【年-月-日】的格式,结果会是【NaN】)
- 在EL表达式或者Struts标签库中格式化日期对象,即将Date转换为yyyy-MM-dd格式
- DevExpress 中 DateEdit 控件 格式化显示和编辑的日期格式为: yyyy-MM-dd
- 时间戳格式化转换为日期格式,date.Format('yyyy/MM/dd hh:mm:ss')
- 如何用sql语言只获得数据库当前日期,且格式为"yyyy-mm-dd"?
- Java 原始 date格式的日期如何手动转成yyyy-MM-ss HH:dd
- 匹配yyyy-mm-dd日期格式的的正则表达式
- 正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式
- 将yyyyMMdd、yyyy-MM-dd格式的字符转成日期DateTime格式
- sybase怎样将datetime类型的日期转换为yyyy-mm-dd格式