尝试几种方法都失败,现在终于插入成功。Oracle是12c Springboot 2.3.9 mybatis-spring-boot-starter 1.3.2
实体类:
public class User implments Serializable{
private String id;
private String name;
pridate Date birthday;
//getter setter 略....
}
Mapper接口:
@Mapper
public interface userDao{
int save (User user);
}
Mapper.xml
之前使用日期格式跟' '进行比较,然后报错 invalid comparison: java.util.Date and java.lang.String。
日期格式要转来转去的,反正这样就成功了。
<insert id="save">
INSERT INTO T_USER
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id !=null and id !='' ">
id,
</if>
<if test="name!=null and name!='' ">
name,
</if>
<!--因为是日期格式,所以不能跟''进行比较,不然报错 invalid comparison: java.util.Date and java.lang.String-->
<if test="birthday!=null">
birthday,
</if>
</trim>
<trim prefix="values(" suffix=")" suffixOverrides=",">
<if test="id !=null and id !='' ">
#{id,jdbcType=VARCHAR},
</if>
<if test="name!=null and name!='' ">
#{name,jdbcType=VARCHAR},
</if>
<!--重点在这里,需要把日期格式转为字符串,再转为日期格式-->
<if test="birthday!=null">
to_date(to_char(#{birthday},'yyyy-MM-dd hh24:mi:ss'),'yyyy-MM-dd hh24:mi:ss'),
</if>
</trim>
</inert>