采用mybatisX-Generator自动生成的entity和maper(com.baomidou.mybatisplus.core.mapper),自己编写的查询和mapper自带的查询方法都无法将部分字段查询出来,相同的sql语句在数据库却可以查询出来。
<?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.cy.store.mapper.AddressMapper">
<resultMap id="BaseResultMap" type="com.cy.store.entity.Address">
<id property="aid" column="aid" jdbcType="INTEGER"/>
<result property="province_name" column="province_name" jdbcType="VARCHAR"/>
<result property="province_code" column="province_code" jdbcType="CHAR"/>
<result property="city_name" column="city_name" jdbcType="VARCHAR"/>
<result property="city_code" column="city_code" jdbcType="CHAR"/>
<result property="area_name" column="area_name" jdbcType="VARCHAR"/>
<result property="area_code" column="area_code" jdbcType="CHAR"/>
...............(省略其他属性)
</resultMap>
<select id="findByAid" resultType="com.cy.store.entity.Address">
select * from t_address where aid=#{aid}
</select>
</mapper>
//mapper
package com.cy.store.mapper;
import com.cy.store.entity.Address;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.Date;
import java.util.List;
public interface AddressMapper extends BaseMapper<Address> {
Address findByAid(Integer aid);
}
//测试
@Test
public void findByAid() {
Address result = addressMapper.findByAid(23);
System.out.println(result);
你这个代码都有问题呀,根本就没有做数据库与实体类映射呀,没有匹配到怎么可能查出来呀?你都写resultMap了,查询却不使用,那你写这个标签还有什么用呢?
应该将select标签里的resultType="com.cy.store.entity.Address"换成resultMap="BaseResultMap"
还有不建议你实体类字段名使用像这种的city_name而是用cityName,另外property="city_name"代表实体类字段名,要保持一致property="cityName"
resultType换成
<select id="findByAid" resultMap="BaseResultMap">
字符集编码问题,编码不一致无法解析就会自动变成null
在控制台打印sql看一看
mybatis默认使用驼峰命名法,实体类带下划线的字段要按驼峰命名法修改。或者在配置文件中配置关闭驼峰命名法。
<setting name="mapUnderscoreToCamelCase" value="false"/>
没有开启驼峰转换造成的,将实体类Address的省、市、区对应的属性字段改为province_name,province_code,city_name,city_code,area_name,area_code试试,xml文件中的property属性要和实体类对应,望采纳
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!