记录下自己踩过的坑
2018-03 刚到公司 拉取了小程序,跟后台项目,用(微信web开发工具)运行了小程序以后,发现商品价格显示一直为0,导致调用了微信的支付接口以后一直失败。先后换了数据库,更新项目还是解决不了问 题,后更换了仓库。显示正常,应该是jar包版本的原因(血的教训。开发环境一定要一样)。
小程序测试调用微信支付接口后,有回调地址。由于没有开启内网穿透。微信无法访问到本地服务。一直失败。可以使用花生壳等映射工具。
2018-07-17 场景:因为公司要搞一个商场小项目,有个功能是定时器批量更新,写完后运行项目,发现执行批量更新时SQL语句报错,一开始以为是语法问题,修修改改。花了两个多小时,实在找不出原因。后来,终于在别人的帮助下,发现是DataSource的URL少了allowMultiQueries=true(支持批量更新,我这里的数据库是MySQL),加了以后,项目正常运行。
2018.7.19 场景:spring boot 搭建的商场小项目 本地运行时无问题,后来放到正式服务器运行,启动时发现找不到数据库表。后发现是线上数据库没有设置表名忽略大小写,导致项目中的mapping.xml文件中的表名是大写与数据库中的表名是小写不对应。已将线上数据库设置忽略大小写。
2018.8.16 场景 新的商场项目 采用springcloud 框架,启动项目后发现连接的是自己的数据库,后改成测试服发数据库,URL,账号密码都是正确的。一直报连接的URL不正确,两个小时的排查。发现是项目重新编译后,target目录中没有编译到dev(yml 本地的配置文件),后。在 Maven Projects 中刷新了源码(文件夹的小图片)。。。。接下来正常运行。
2018.8.28
Timestamp create_time
给这个对象实体类中的get方法加注解:@JsonFormat 来实现格式的自动转换:
依赖的jar包:jackson-annotations-2.8.5.jar 不需要自己转格式
2019.2.22
记一次索引失效的原因
表A 中关联查询的字段建立了索引,表B关联的字段也建立了索引。但是关联查询时还是全表扫描。最后发现 表A建立索引字段的编码与表B的建立索引的字段的编码不一致
2019.8.2
记一次左关联查询出现多条数据的问题
情况描述:主表A,左关联表B 关联条件为 A的流水号=B的流水号。表A的流水号在表A中是唯一的,表B的流水号的值跟表A的流水号的值是一致的,并且在表B中也是唯一的。但是查询出了三条记录。
排查了许久,发现表A中的流水号的字段属性是bignit,表B中流水号字段的属性是Varchar类型。字段类型不一致。导致关联失效。
MySQL数据库版本问题引起的不能group by问题
解决办法 但是重启数据库后失效
SELECT @@GLOBAL.sql_mode;
set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
解决数据库时间不同步的问题(时差问题)
在数据库连接URL后面加上&serverTimezone=GMT%2B8 (其实也是给的标准时区)
//数组里面多个对象的接惨方式
// 将以上JSON格式转成Java数组
JSONArray parameters = JSON.parseArray(parameterStr);
//遍历数组
for(int i=0;i<parameters.size();i++){
// 每一个对象
JSONObject goodObject = parameters.getJSONObject(i);
//根据key获得values
String id = goodObject.getString("id");
//根据key获得values
BigDecimal invoiceUseAmount = goodObject.getBigDecimal("invoiceUseAmount");
}
浙公网安备 33010602011771号