1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 实体类属性与数据库字段不一致

实体类属性与数据库字段不一致

时间:2022-09-16 18:10:19

相关推荐

实体类属性与数据库字段不一致

实体类属性与数据库字段不一致

1问题描述

使用Mybatis时,Mybatis根据数据库的字段找到对应实体类的属性,通过set方法对属性进行注入。

如果实体类的属性名和数据库的字段名不相同,可以发现没有通过set方法进行注入,而且TestUser对象的属性值为NULL。

数据库表字段

create table tb_test_user(UID INT primary key auto_increment COMMENT 'UID',USER_NAME VARCHAR(20) COMMENT '用户名')ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户测试表';

Entity属性

@ApiModel("测试用户信息entity")public class TestUser {@ApiModelProperty("ID")private int cred;@ApiModelProperty("用户名")private String name;//getter/setter/toString}

2 处理方案

方案一:修改查询语句增加别名

<select id="selectByUid" parameterType="int" resultType="com.pingan.mybatis.entity.TestUser">selectUID as cred,USER_NAME as namefrom tb_test_user where UID = #{uid}</select>

方案二:添加关联映射

<resultMap id="testUserMap" type="com.pingan.mybatis.entity.TestUser"><id column="UID" property="cred" /><result column="USER_NAME" property="name" /></resultMap><select id="selectByUid" parameterType="int" resultMap="testUserMap">select *from tb_test_userwhere UID = #{uid}</select>

方案三:JPA操作实体类

@ApiModel("测试用户信息entity")@Entity //声明为实体类@Table(name = "tb_test_user") //对应数据库的表public class TestUser {@ApiModelProperty("ID")@Column(name = "UID") //数据库字段private int cred;@ApiModelProperty("用户名")@Column(name = "USER_NAME") //数据库字段private String name;//getter/setter/toString}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。