• MyBatis——resultMap实体类名和列名的对应


      之前说过我们实体类的属性名和数据库列名是一致的,那如果是不一致的呢

       现在我们再把测试类中相关的代码改好

       还有一个地方就是我们的xml配置,我们把成员变量名改了,就找不到keyProperty,还有OGNL表达式找不到相关成员变量

       所以我们把相关的成员变量名改了

      现在我们的更新,保存的操作都能正常执行。

      但查询操作却有点问题

       只有一部分数据被封装进去了——只有userName,那是因为MySQL数据库不区分大小写,userName和username等同所以能封装进去,而其他的完全不一样,就封装不进去

    这里注意如果是linux系统是严格区分大小写的

      现在我们来解决封装不进去的问题,之所以封装不进去就是名字对不上,我们可以通过起别名的方式解决

      也就是说mysql执行这条sql语句出来的列名跟实体类是匹配的

      另一种方法是在xml文档进行一个配置,这里是创建了一个结果集的关系表,使得java实体类的属性名和数据库的列名一一对应,property是java属性名,column是表的列名

      然后resultType就没用了,要用我们新定义的userMap

      这样的执行也是毫无问题的

      第一种方式是直接在数据库层实现,第二种方式还要多解析个xml,所以第一种的执行效率比第二种的要高,但第二种的开发效率高,因为我们既然定义了这个map,之后有关查询的都可以配置这个map,不用动里面的sql语句,两种方法各有利弊。

      2020/8/21 14:16:08 我不要剧烈的快乐……取而代之亦没有深刻的绝望……追求植物一样的人生,过着平静的生活,这才是我的目标。——吉良吉影《JOJO奇妙冒险》

  • 相关阅读:
    Pollard rho模板
    GDKOI2018游记
    BZOJ2599: [IOI2011]Race
    Codeforces914E. Palindromes in a Tree
    可以删点的并查集
    本月题量 180122晚-180222午
    51nod1238 最小公倍数之和 V3
    51nod1237 最大公约数之和 V3
    hdu5608:function
    51nod1244 莫比乌斯函数之和
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/13540758.html
Copyright © 2020-2023  润新知