mybatis查询及实体类映射
为了做查询,做了一个pojo为UserDemo,且继承了User类。
public class UserDemo extends User{ private String loginName; private String password; private Date updatetime; }
User类里多了一些字段,例如createtime、createtime等。
public class User implements Serializable { @Id private Integer id; private String loginName; private String userName; private String password; private String email; private String address; private String platform; private Date createtime; }
Mapper接口定义为:
UserDemo findOneByLoginNameAndPassword(String loginName, String password);
xml中的查询如下:
<select id="findOneByLoginNameAndPassword" resultType="com.demojava.entity.UserDemo" parameterType="String"> select login_name,password,createtime,updatetime,platform from user where login_name = #{loginName} and password = #{password} </select>
业务代码为:
UserDemo userDemo = userMapper.findOneByLoginNameAndPassword(loginName,password); logger.info("校验loginName和password得到的userDemo信息:" + userDemo);
此时的打印为:
校验loginName和password得到的userDemo信息:UserDemo(loginName=xunlian, password=123456, updatetime=Thu May 16 15:30:43 CST 2019)
当我在业务代码中打印其他信息时:
String platForm = userDemo.getPlatform(); Date createtime = userDemo.getCreatetime(); Date updatetime = userDemo.getUpdatetime(); logger.info("platForm:{},createtime:{},updatetime:{}",platForm,createtime,updatetime);
神奇的是,控制台中居然有对应的输出:
platForm:dev,createtime:Thu May 16 15:31:02 CST 2019,updatetime:Thu May 16 15:30:43 CST 2019
而且,方法最后返回了userDemo,居然把UserDemo加User里所有的属性都包含了,而且都有值。 这是为什么?sql里我只查了几个字段呀。
上一篇:
IDEA上Java项目控制台中文乱码