mysql 5.7 版本,建表语句mysql
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,则默认写入时间是当前时间...sql
例如:url
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();
有点神奇,记录一下,哈哈哈。。code