随笔

记录下这几天在开发过程中遇到的小问题,方便以后再遇到可以很快解决

问题1:

错误:

在项目跑起来之后报错:

Expression #1 of SELECT list is not in GROUP BY clause and contains 

查找后发现问题出现的原因:

MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),

MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,

也不在功能上依赖于它们。(5.7.5之前,MySQL没有检测到功能依赖关系,默认情况下不启用ONLY_FULL_GROUP_BY。

有关5.7.5之前的行为的说明,请参见“MySQL 5.6参考手册”。)

解决办法:

打开navicat,用sql查询:

select @@global.sql_mode

查询出来的值为:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

去掉ONLY_FULL_GROUP_BY,重新设置值。

set @@global.sql_mode 
=’STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;

 

问题2:

错误:

 在统计后台增加主播流量统计的时候出现报错

java.time.format.DateTimeParseException: Text '2018-09-26' could not be parsed at index 10

我的源码是这样的:

 List<PushAnchorRecord> list = pushAnchorRecordDAO.findList(uid, LocalDateTime.parse(startDate), LocalDateTime.parse(endDate));
            Long count = userCallbackRecordDAO.findCount(uid, LocalDateTime.parse(startDate), LocalDateTime.parse(endDate));

刚开始以为是前端页面的时间组件没有时分秒的关系于是我修改了前端页面的时间组件后运行,

发现还是一样的错误,就在DateUtils工具类里面添加了string转化成LocalDateTime的方法,代码如下:

    public static LocalDateTime parseStringToDateTime(String time) {
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        return LocalDateTime.parse(time, df);
    }

终于搞定

 

问题3

 数据表中的type字段设置了tinyint属性,在创建实体类的时候,将type设置为Interger封装类型,

报错说类型不符合,查找了下也没有tinyint的封装类型

在网上找到一个这样的方法,添加注解后就不报错了

 

问题4

在开发过程中因为有很多map和list的操作,需要大量的遍历或者使用stream流的方式,

对于list因为这段时间开发经常遇到感觉还好一些,遇到map复杂些的遍历操作或者

类似把map中的数据放到某个list里面返回另一个泛型的list之类的操作有时候写代码的时候

还是会迟滞没那么顺畅,对于map的概念和数据操作要多练习

 

接下来几天在完成开发任务之余,主要会了解学习"反射""动态代理""工厂模式""AOP和IOC"的相关知识,

在开发过程中一直调用spring的框架对其原理还不是很明白,理解理论概念后会参考网上的代码后会自己写一个实例以加深印象.放到下一篇博客中

posted @ 2018-09-27 20:11  期待变成攻城狮的程序猿  阅读(113)  评论(0编辑  收藏  举报