基本上就是实体类与数据库命名字段不匹配问题,还有就是注意驼峰命名法在Mybatis-plus实际运行Query时候的别名问题
下面是一个简单的JavaBean
package jmu.rjc.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import lombok.experimental.Accessors;
import org.springframework.lang.NonNull;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "friends")
public class Friends implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "fid",type = IdType.AUTO)
private Long fid;
//这里直接用下划线隔开,这时候就要注意,需要在 application.yaml 文件中配置Mybatis-plus关闭驼峰命名法
@NonNull
@TableField(value = "url")
private String friend_url;
}
测试没有配置之前的查询,其中 friend_url=null
可以看到 friend_url 不是驼峰命名法,所以需要去 application.yaml文件中配置 mybatis-plus
mybatis-plus:
configuration:
map-underscore-to-camel-case: false
测试配置之后的查询,friend_url=1
package jmu.rjc.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import lombok.experimental.Accessors;
import org.springframework.lang.NonNull;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "friends")
public class Friends implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "fid",type = IdType.AUTO)
private Long fid;
//这里用驼峰命名法,不用去配置yaml文件,直接查询即可
@NonNull
@TableField(value = "url")
private String friendUrl;
}