mybatis中属性名称和列名称不一致的解决方案

1.-方式1:resultType中的实体类的属性作为查询语句中的别名,让别名和属性保持一致

2.使用resultMap映射

案例准备工作:创建表:

use mybatis;
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`user_id` int NOT NULL AUTO_INCREMENT COMMENT '用户id',
`user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户姓名',
`user_age` int NULL DEFAULT NULL COMMENT '用户年龄',
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
INSERT INTO `users` VALUES (1, '贾宝玉', 14);
INSERT INTO `users` VALUES (2, '林黛玉', 13);
INSERT INTO `users` VALUES (3, '薛宝钗', 15);
SET FOREIGN_KEY_CHECKS = 1;

实体类Users.java

public class Users {
    private Integer userId;
    private String userName;
    private Integer userAge;
    @Override
    public String toString() {
        return "Users{" +
        "userId=" + userId +
        ", userName='" + userName + '\'' +
        ", userAge=" + userAge +
        '}';
    }

1.使用别名

接口UsersMapper.java

public interface UsersMapper {
    Users queryByID(int userId);
}

映射文件UsersMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kkb.mapper.UsersMapper">
<!--方式1:resultType中的实体类的属性作为查询语句中的别名,让别名和属性保持一致-->
   <select id="queryByID" resultType="com.kkb.pojo.Users">
        select user_id as userId,user_name as userName,user_age as userAge from users where                                 
    user_id=#{id};
    </select>
</mapper>

测试类TestUsersMapper.java

package com.kkb.test;
import com.kkb.mapper.UsersMapper;
import com.kkb.pojo.Users;
import com.kkb.util.MybatisUtil;
import org.junit.Test;
/**
* ClassName: TestUsersMapper
* 测试类
* @author wqs
* @version 1.0
*/
public class TestUsersMapper {
    private UsersMapper usersMapper= MybatisUtil.getSqlSession().getMapper(UsersMapper.class);
@Test
public void test01(){
    Users user = usersMapper.queryByID(1);
    System.out.println(user);
    }
}

2 使用resultMap

接口UsersMapper.java添加方法

Users queryByID2(int userId);

映射文件UsersMapper.xml添加如下内容:

<!--方式2:通过resultMap自行映射-->
<select id="queryByID2" resultMap="baseMap">
    select * from users where user_id=#{id};
</select>
<resultMap id="baseMap" type="com.kkb.pojo.Users">
    <id column="user_id" property="userId"/>
    <result column="user_name" property="userName"/>
    <result column="user_age" property="userAge"/>
</resultMap>

测试:

@Test
public void test02(){
    Users user = usersMapper.queryByID2(1);
    System.out.println(user);
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值