mysql 5.7 版本,建表语句
CREATE TABLE `people` (
`job_number` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '员工ID',
`name` varchar(32) NOT NULL COMMENT '姓名',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`gender` varchar(1) DEFAULT NULL COMMENT '性别',
`dept_id` int(11) DEFAULT NULL COMMENT '部门ID',
`salary` decimal(12,4) DEFAULT NULL COMMENT '工资',
`create_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`job_number`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='新员工表'
可以看到create_time的default 是 0000-00-00 00:00:00,
但在使用jdbc写入时,如果传参为null,则默认写入时间是当前时间...
例如:
final Connection conn = DriverManager.getConnection(url , username , password ) ;
conn.setAutoCommit(false);
Row row = it.next();
String insert = "insert into people(name,create_time) values(?,?) ";
PreparedStatement ps = (PreparedStatement) conn.prepareStatement(insert);
ps.setObject(1, "John");
ps.setObject(2, null/*row.getAs("create_time")*/);
ps.addBatch();
ps.executeBatch();
conn.commit();
有点神奇,记录一下,哈哈哈。。