实现一个查询数据库用户信息的方法,查询到数据库记录中的timestamp字段在java中显示为null,查看了下原因发现是因为没有给mybatis设置ORM规则,java实体类和数据库表字段映射不上,所以映射不成功的字段时java中的默认值,知道原因之后就知道怎么解决了:
方法1、mybatis配置文件中设置结果集映射
参考:
<resultMap type="com.demo.bean.User" id="user">
<id column="id" property="id"/>
<result column="last_name" property="lastName"/>
<result column="gender" property="gender"/>
</resultMap>
方法2、将java实体类中的字段与数据库对应的表字段名字一致。
建表sql
CREATE TABLE USER( `id` INT(10) NOT NULL AUTO_INCREMENT, `name` VARCHAR(10) NOT NULL , `gender` VARCHAR(1) NOT NULL, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) USING BTREE ) DEFAULT CHARSET=utf8;
实体类:
import lombok.Getter; import lombok.Setter; import java.util.Date; @Getter @Setter public class User { private int id; private String name; private String gender; private Date create_time; private Date update_time; @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", gender='" + gender + '\'' + ", createTime=" + create_time + ", updateTime=" + update_time + '}'; } }