1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > int long double数值类的基本类型导致更新数据被清零

int long double数值类的基本类型导致更新数据被清零

时间:2023-04-28 18:48:22

相关推荐

int long double数值类的基本类型导致更新数据被清零

今天犯了个错

建实体的时候用的是基本类型int、double、long…而不是包装类Integer、Double、Long…

导致更新后实体model中使用基本类型的数据在数据库被清零

public class test {public Long testa ;public long ad;public Long getTesta() {return testa;}public void setTesta(Long testa) {this.testa= testa;}public Long getAd() {return ad;}public void setAd(Long ad) {this.ad = ad;}}

数据库mybatis自动生成的updateByPrimaryKeySelective方法如下:

<update id="updateByPrimaryKeySelective" parameterType="model.test">update test<set>.....<if test="testa!= null">testa= #{testa,jdbcType=BIGINT},</if><if test="ad != null">ad = #{ad,jdbcType=BIGINT},</if></set></update>

更新的时候

Test test = new Test()test.setId(id);test.setTesta(232);updateByPrimaryKeySelective(test);

如代码只想更新testa,却意外的把ad也更新为0了。

所以在建实体model时要用包装类才能使用如mybatis操作数据块的代码一样去更新数据。否则基本类型的数据会被清零。因为在new关键字构建方法构建对象后,该对象基本类型的数据默认值是0,而不是null;而包装类默认值是null。

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