4、Mybatis查询语句列名和属性名不一致的解决方法

Mybatis查询语句列名和属性名不一致的解决方法

方法一
ResultMap

//resultMap定义映射关系
    List<User> selectAllUser();

<!--使用resultMap
        1)先定义resultMap
            id:自定义的名称,表示你定义的这个resultMap
            type:java类型的全限定名称
        2)在select标签,使用resultMap来引用1定义
    -->
    <resultMap id="StudentMap" type="com.example.entity.User">
        <!--列名和Java属性之间的关系-->
        <!--主解列,使用id标签
            column:属性名
            property:Java类型的属性名-->
        <id column="id" property="Userid"></id><!--主键列-->
        <!--非主键列,使用的是result-->
        <result column="name" property="Username"></result>
        <result column="pwd" property="Userpwd"></result>
    </resultMap>
    <select id="selectAllUser" resultMap="StudentMap">
        select id,name,pwd from user
    </select>

将数据库id指定给Userid、name指定给Username、pwd指定给Userpwd;否则虽然能查到,但是无法正常使用。

方法二
列名和属性名不一样

List<UserModel> seletDiffColProperty();

	<!-- resultType的默认原则是,同名的列值赋值给同名的属性,使用列别名-->
    <select id="seletDiffColProperty" resultType="UserModel">
        select id as Userid,name as Username,pwd as Userpwd from user
    </select>

UserModel类

public class UserModel {
    
    
    private Integer Userid;
    private String Username;
    private String Userpwd;
    @Override
    public String toString() {
    
    
        return "UserModel{" +
                "Userid=" + Userid +
                ", Username='" + Username + '\'' +
                ", Userpwd='" + Userpwd + '\'' +
                '}';
    }

    public Integer getUserid() {
    
     return Userid; }

    public void setUserid(Integer userid) {
    
     Userid = userid;}

    public String getUsername() {
    
     return Username;}

    public void setUsername(String username) {
    
     Username = username; }

    public String getUserpwd() {
    
    return Userpwd;}

    public void setUserpwd(String userpwd) {
    
     Userpwd = userpwd; }
}

猜你喜欢

转载自blog.csdn.net/m0_53294821/article/details/114540138