关于createtime和updatetime自动插入的问题
正常往数据库里添加和更新操作时,为了留下痕迹都会,创建createtime和updatetime字段。
而这个字段怎么跟自己的操作来进行变更是一个问题。
百度查方法是
#{creatTime,jdbcType=TIMESTAMP}
给createtime赋值来完成操作,但是后来操作的时候还是null值
解决:
在创建数据库的时候添加
DEFAULT CURRENT_TIMESTAMP
表示当插入数据的时候,该字段默认值为当前时间
ON UPDATE CURRENT_TIMESTAMP
表示每次更新这条数据的时候,该字段都会更新成当前时间
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
这样的话,在添加更新操作的时候不需要自己做任何操作,不需要传任何值。
关于传参的问题
参数为List
List中的数据需要遍历去操作值
delete from
video_info
where id
in
<foreach collection="list" open="(" separator="," close=")" item="id">
#{id}
</foreach>
具体还可以参考: https://www.cnblogs.com/yl97/p/13380565.html
参数为String时
一般我们都是按这样的方式来写的:
对于其他类型是没错的,但是如果为String的话会抛下面的异常:
There is no getter for property named ‘code’ in ‘class java.lang.String’
因为MyBatis要求如果参数为String的话,不管接口方法的形参是什么,在Mapper.xml中引用时需要改变为_parameter才能识别 :