一、我们之前说过,我们的实体类必须跟数据库的列名是对应的,但如果不对应呢?我们来看个例子分析一下,我们修改我们的实体类,修改两个属性,重新生成我们的get,set方法,toString。
二、我们运行测试方法,查询所有用户,我们会发现
我们的实体类有两个属性没有跟数据库的列名对应
——> 但是我们的userName没有问题,可以封装进来
——> 但是我们的userid有问题,没有封装
原因是:
一、在我们的 Windows 系统中,mysql是不区别大小写的!所以userName实际上跟username是 没有区别的,所以userName没有问题 二、我们的id直接改成了userid,根本跟mysql的列名对不上,所以封装不了,为Null
三、在不改变java实体类的情况下,我们有两种解决方案
第一种解决方案是给它取别名、如图:
运行测试,出来了,不为Null
第二种解决方案是用resultMap标签进行配置、如图:
运行测试,出来了,不为Null
演示完了,我们把我们的实体类的两个属性名改回去。