http://zhanghteye.iteye.com/blog/2372572

今天处理一个生产环境报NullPointerException的问题,根据查询的对象,获得对象中的一个字段,结果为空。

报错位置:int partnerCode = servicefeeRecord.getPartnerCode().intValue();

(注:本身这直接取字段不判断是否为空,就获得它的int值。写法本身就有点问题,虽然业务上这个字段一定存在。)

定位问题步骤:

1、查看生产数据库,对象对应的数据改字段是有值的。

为啥没查出来?继续找问题。

2、从源头定位起,从查询对象的service方法,找到dao方法,再找到mapper文件里面的查询sql。

sql查询字段中并没有包括需要的字段。

原来问题在此,那怎么会有这个坑呢?

3、根据最近了解的其他人做相关需求的变动,原来在于有同事做需求拓展时,只在数据库表增加该字段、在实体bean增加该字段,mapper文件中的sql查询,没有增加改字段导致。

总结:

1、原本很简单的问题,却花费大半个小时来处理问题,以及帮别人填坑,实属无奈。

2、开发人员工作的严谨性,相当重要,如果考虑不全,不单单影响到自己,甚至影响到其他人。

3、基于Mybatis的应用:数据库表增加一个字段,还要改哪些地方?

a、写sql脚本修改表结构

b、实体bean增加对象

c、mapper中所有涉及查询整个对象字段的sql,都需一一添加对应的新增字段

d、mapper配置中涉及整个对象的查询尽量采用以下方式:

<sql id="queryColumns">

Column1,Column2,Column3,....

</sql>

<select id="查询方法名称" resultMap="返回结果对象">

SELECT

<include refid="queryColumns" />

FROM

...

</select>

这样很多类似查询,都是引用queryColumns,到时只需改一个地方即可。

mybatis数据库字段增加相关推荐

  1. 当mybatis逆向工程遇上了数据库字段增加

    最近做的一个项目让我对mybatis的逆向工程有些迷茫,毕竟第一次在实际项目中使用,有太多稚嫩,老人路过还请指教. 对于mybatis的逆向工程,我既喜欢它让我省了很多力气,但是另一方面,它也给我套了 ...

  2. tp新增mysql字段_tp数据库字段增加 mysql设置某字段自增

    tp5导入Excel表实现修改或者添加数据库一个字段? 1.首先在SQL Window窗口中,查询需要导出的数据. 2.在查询的结果集上(注意不要选中任何一个行或者单元格)右键--[Copy to E ...

  3. 给数据库字段增加前缀

    update users set mobile = concat('86-', mobile)

  4. Mybatis 解决数据库字段名和实体类属性名不一致问题

    一.问题描述 1.1 查询 password 字段为 null 现象 数据库字段名: 实体类属性名: @Data @NoArgsConstructor @AllArgsConstructor publ ...

  5. MyBatis入门实例-包括实体类与数据库字段对应CLOB字段处理

    1.我的开发环境是 jdk1.7+ecplise+oracle 11g 用到的jar包:mybatis-3.1.1.jar ojdbc6.jar 2.项目整体结构 3.首先配置conf.xml文件 [ ...

  6. springboot+mybatis+新加属性自动加数据库字段

    由于最近的项目老是修改,需求变一下,其他同事改了对象,别的同事表里又没有添加该字段,每次更新项目都得去看有没有新添加sql,领导觉得麻烦,让我找找有没有没有什么注解可以标在上面,新加的对象属性自己去生 ...

  7. oracle to_char 和 to_date的区别,斜杠和横杠日期转换,mybatis中入参日期,数据库字段是date的写法

    文章目录 斜线日期转换为横线 这样的时间字符串如何转换20201212040506258 ORA-01830: 日期格式图片在转换整个输入字符串之前结束 mybatis中入参日期,数据库字段是date ...

  8. springboot+mybatis数据库中字段带下划线自动转换成实体

    当数据库字段使用xxx_bbb的时候java中的实体类遵照命名规则来说不应该出现下划线 所以使用springboot集成mybatis的时候很简单的就可以吧数据库的下划线字段映射成不带下划线的 xxx ...

  9. oracle删除表的一个字段的数据库,学会Oracle数据库删除表字段和Oracle数据库表增加字段方法...

    Oracle数据库添加字段的语法:alter table tablename add (column datatype [default  value][null/not null],-.); Ora ...

  10. java 实体类中增加非数据库字段,同时兼容mybatis-puls与jpa

    原先项目使用的是 jpa + mybatis 来做持久层 ,jpa做增删改操作,mybatis做查,后来发现mybatis-puls也挺香的然后就把puls放了进来. 遇到的问题: 在实体类中加非数据 ...

最新文章

  1. hadoop部署单机
  2. js将百度坐标转为wgs84
  3. java Flink使用addSink方法保存流到mysql数据库中
  4. 深入剖析 Sharepoint 企业项目管理与 SharePoint(转)
  5. 地表反照率数据、地表净辐射通量、太阳辐射数据、地表温度、地表显热通量、NDVI、NPP、土地利用数据
  6. 欧姆龙CP1H的PLC步进功能图编程实例
  7. 如何把word默认新建文档的格式样式更改为常用的格式样式呢
  8. ad 原理图放置差分对_Altium Designer差分对设置方法
  9. 计算机的大于键盘哪里,怎样在键盘上打出大于等于号,小于等于号?键盘大于等于号怎么打?...
  10. 计算机二级电子表格使用技巧36种,Excel表格中最经典的36个小技巧,全在这儿了...
  11. 【C++】gcd函数的写法
  12. iOS 打开AppStore指定app下载页
  13. 政府赠予固定资产或者捐赠资金的会计分录
  14. 网络原理之TCP/UDP协议
  15. S5PV210-裸机中断
  16. GCP: IAM的使用
  17. [漏洞预警]交易所漏洞之薅羊毛分析
  18. 对element-UI 的表格进行自定义的修改
  19. IPv6+5G校园 | 智慧校园建设应该注意哪些问题?
  20. iphone x性能测试软件,iPhone - 电池性能测试信息 - Apple (中国大陆)

热门文章

  1. vscode为python文件添加模板
  2. 数据结构——图的应用
  3. 软件打不开且显示乱码的解决办法
  4. 高项_第一章信息化和信息系统
  5. Python程序设计题库
  6. Linux 下安装和配置 MinDoc
  7. 路由器和带宽猫、AP、AC、交换机
  8. 用计算机新字库打出的文字,为什么用五笔打字有很多字打不出来(GBK和GB2312字库的区别)...
  9. 使用Charles进行HTTPS抓包
  10. Sqlmap使用教程【个人笔记精华整理】