栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis 解决数据库字段名和实体类属性名不一致问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis 解决数据库字段名和实体类属性名不一致问题

一、问题描述 1.1 查询 password 字段为 null 现象

数据库字段名:

实体类属性名:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private int id;
    private String name;
    private String password;
}

Mapper 层:

public interface UserMapper {
   //查询全部用户
   List getUserList();
}

UserMapper.xml


   select id,name,pwd from mybatis.user;

编写单元测试:

@Test
public void getUserList(){
  //获得SqlSession对象
  SqlSession sqlSession=MybatisUtils.getSqlSession();
  UserMapper mapper = sqlSession.getMapper(UserMapper.class);

  List userList = mapper.getUserList();

  for (User user : userList) {
      System.out.println(user);
  }
  //关闭sql
  sqlSession.close();
}

测试结果

password 全部为 null 原因是数据库字段名 pwd 和实体类属性名 password 不一致导致的。

二、解决方案 2.1 pwd 取别名为 password

在 UserMapper.xml 文件中的 pwd 求别名为 password 如下:


   select id,name,pwd from mybatis.user;

测试结果:

2.3 下划线可设置驼峰命名规则

如果只是单纯的下划线,可以使用 setting 标签设置开启驼峰命名规则,例如:数据库字段 start_time,实体类 startTime 。


   
   

总结

解决 Mybatis 数据库字段名和实体类属性名不一致问题的三种办法:
1.取别名
2.使用 resultMap 标签 (推荐使用)
3.如果只是单纯的下划线,可以使用 setting 标签设置开启驼峰命名规则。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/782725.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号