mybatis 动态sql 插入报错

Posted 八稚女

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis 动态sql 插入报错相关的知识,希望对你有一定的参考价值。

1. 值为null必须制定jdbcType

    单条执行的话,可以考虑把值为null的字段去掉

2. 值的类型无法解析

    比如oracle.sql.TIMESTAMP类型,需转为java.sql.TIMESTAMP等

    附一个oracle.sql.TIMESTAMP转为java.sql.TIMESTAMP的方法

       /**
	 * @reference oracle.sql.Datum.timestampValue();
	 * @return
	 */
	private Timestamp getOracleTimestamp(Object value) {
		try {
			Class clz = value.getClass();
			Method m = clz.getMethod("timestampValue");
			//m = clz.getMethod("timeValue", null); 时间类型
			//m = clz.getMethod("dateValue", null); 日期类型
			return (Timestamp) m.invoke(value);

		} catch (Exception e) {
			return null;
		}
	}

 

以上是关于mybatis 动态sql 插入报错的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis动态SQL标签用法

mybatis学习(39):动态sql片段

mybatis动态sql片段与分页,排序,传参的使用

Mybatis -- 动态Sql概述动态Sql之<if>(包含<where>)动态Sql之<foreach>sql片段抽取

mybatis动态sql之利用sql标签抽取可重用的sql片段

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段