做实训项目,环境都是老师提供的,所以就遇到了今天这个问题:
Mybatis查出来的数据无法封装到JavaBean中
我的表字段如下
uid -- 用户id
dep_id -- 部门id
employee_id -- 员工id
user_name -- 用户名
user_pwd -- 用户密码
create_time -- 创建日期
status -- 状态
我的JavaBean格式如下
public class UserBean {
private Integer uid; // 用户id
private Integer dep_id; // 部门id
private Integer employee_id; // 员工id
private String user_name; // 用户名
private String user_pwd; // 用户密码
private Date create_dime; // 创建日期
private Integer status; // 状态
......
}
在执行查询时,发现总是无法将查询出来的数据进行正确的封装
观察日志,是有查询结果的
18:02:36.946 [http-nio-8080-exec-8] DEBUG com.crm.dao.UserDaoImpl.findAll - ==> Preparing: select * from tb_user
18:02:36.974 [http-nio-8080-exec-8] DEBUG com.crm.dao.UserDaoImpl.findAll - ==> Parameters:
18:02:37.007 [http-nio-8080-exec-8] DEBUG com.crm.dao.UserDaoImpl.findAll - <== Total: 5
但是结果总是:
UserBean [uid=1, dep_id=null, employee_id=null, user_name=null, user_pwd=null, create_time=null, status=null]
UserBean [uid=2, dep_id=null, employee_id=null, user_name=null, user_pwd=null, create_time=null, status=null]
UserBean [uid=3, dep_id=null, employee_id=null, user_name=null, user_pwd=null, create_time=null, status=null]
UserBean [uid=4, dep_id=null, employee_id=null, user_name=null, user_pwd=null, create_time=null, status=null]
UserBean [uid=5, dep_id=null, employee_id=null, user_name=null, user_pwd=null, create_time=null, status=null]
经过各种排查,我发现我犯了一个粗心的大错
在Mybatis-config.xml配置文件中,设置了一个这样的属性
<configuration>
.....
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
......
</configuration>
这个驼峰命名转换属性,会自动将数据表字段中的下划线_后的首字母转化为大写字母
找到出现问题,这个时候将JavaBean属性进行纠正
private Integer uid; // 用户id
private Integer depId; // 部门id
private Integer employeeId; // 员工id
private String userName; // 用户名
private String userPwd; // 用户密码
private Date createDate; // 创建日期
private Integer status; // 状态
再次查询,发现已经能正确的进行映射了
UserBean [uid=1, depId=1, employeeId=4, userName=马云, userPwd=123456, createDate=Thu Jul 01 16:15:29 CST 1999, status=null]
UserBean [uid=2, depId=1, employeeId=4, userName=杨幂, userPwd=123456, createDate=Sat Jun 15 16:16:06 CST 2013, status=null]
UserBean [uid=3, depId=2, employeeId=5, userName=赵露思, userPwd=123456, createDate=Fri Jun 14 16:16:52 CST 2002, status=null]
UserBean [uid=4, depId=1, employeeId=1, userName=刘雨昕, userPwd=123456, createDate=Sat Feb 25 16:17:57 CST 2006, status=null]
UserBean [uid=5, depId=2, employeeId=5, userName=虞书欣, userPwd=123456, createDate=Sun Aug 27 16:18:53 CST 2000, status=null]