Mybatis 查询返回null

Mybatis 查询返回null

先看看我写的代码如下:
实体类:

public class UserRank {
private Integer rankId;
//等级id
private Integer userRankId;
//等级积分
private Integer rankMark;
//等级名称
private String rankName;

public Integer getRankId() {
    return rankId;
}
public void setRankId(Integer rankId) {
    this.rankId = rankId;
}
public Integer getUserRankId() {
    return userRankId;
}
public void setUserRankId(Integer userRankId) {
    this.userRankId = userRankId;
}
public Integer getRankMark() {
    return rankMark;
}
public void setRankMark(Integer rankMark) {
    this.rankMark = rankMark;
}
public String getRankName() {
    return rankName;
}
public void setRankName(String rankName) {
    this.rankName = rankName;
}
@Override
public String toString() {
    return "UserRank{" +
            "rankId=" + rankId +
            ", userRankId=" + userRankId +
            ", rankMark=" + rankMark +
            ", rankName='" + rankName + '\'' +
            '}';
}

}
Mapper类:

public interface UserRankMapper {
//添加权限
void addUserRank(UserRank userRank);
//查询权限
UserRank select(Integer id);
}

MapperImple.xml实现类:

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.UserRankMapper">
    <select id="select" parameterType="Integer" resultType="entity.UserRank">
        SELECT user_rank_id,rank_mark,rank_name FROM user_rank WHERE user_rank_id=#{id}
    </select>

</mapper>va
在这里插入代码片

测试类:

   public static void main(String[] args) throws IOException{
        String resource = "MyBatisConfiguration.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession openSession = sqlSessionFactory.openSession();
        UserRankMapper mapper = openSession.getMapper(UserRankMapper.class);
   		UserRank select = mapper.select(1);
        System.out.println(select);

输出结果:

DEBUG [main] - ==>  Preparing: SELECT user_rank_id,rank_mark,rank_name FROM user_rank WHERE user_rank_id=? 
DEBUG [main] - ==> Parameters: 1(Integer)
TRACE [main] - <==    Columns: user_rank_id, rank_mark, rank_name
TRACE [main] - <==        Row: 1, 8000, 钻石
DEBUG [main] - <==      Total: 1
null

SQL查询正常,返回对象为空,这是SQL下划线和实体封装大小写出了问题
解决办法:
在全局配置中设置:

<setting name="mapUnderscoreToCamelCase" value="true"/>

在运行结果正常:

DEBUG [main] - ==>  Preparing: SELECT user_rank_id,rank_mark,rank_name FROM user_rank WHERE user_rank_id=? 
DEBUG [main] - ==> Parameters: 1(Integer)
TRACE [main] - <==    Columns: user_rank_id, rank_mark, rank_name
TRACE [main] - <==        Row: 1, 8000, 钻石
DEBUG [main] - <==      Total: 1
UserRank{rankId=null, userRankId=1, rankMark=8000, rankName='钻石'}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值