前言:
都是小错误,仅仅记录一下菜的过程
正文:
1、找不到Mapper
Field resourceMapper in com.giska.service.ResourceServiceImpl required a bean of type 'com.giska.mapper.ResourceMapper' that could not be found.
原因:包引错了
应该是:import org.apache.ibatis.annotations.Mapper;
= {DataSourceAutoConfiguration.class},排除此类的autoconfig。启动以后就可以正常运行。
这是因为添加了数据库组件,所以autoconfig会去读取数据源配置,而我新建的项目还没有配置数据源,所以会导致异常出现。
一共两个包引的一个偏偏是错的,像前天晚上10点多坐车回家,一共两个方向偏偏坐错了方向,终点站还是那种特别荒凉的地方
2、@SpringApplicationConfiguration(Application.class)过时换成@SpringBootTest
3、junit 测试报错 java.lang.Exception: No runnable methods添加TEST注解
4、Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured.
启动类的@EnableAutoConfiguration或@SpringBootApplication中添加exclude= {DataSourceAutoConfiguration.class}以排除此类的autoconfig:@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})启动以后就可以正常运行。
因为添加了数据库组件,所以autoconfig会去读取数据源配置,而新建的项目还没有配置数据源,所以会导致异常出现。
5、properties和yml的格式是不一样的,这个还是要说一下的,有时候往往是于最熟悉的地方给自己挖坑
6、关于Controller返回值、实现界面跳转问题
跳转界面,出现了不跳界面打出字符串:因为使用了@RestController返回的做了一层json处理,需要将restController换成@Controller;如果返回实体或字符串,方法上添加ResposeBody注解
那咱们就来聊聊@Controller,@ RestController(均用来表示spring某个类是否可以接受HTTP请求)
@controller:标识spring类是spring MVC controller处理器
@restController:@RestController是@Controller和@ResponseBody的结合体。
扩展一下:组合注解和元注解、条件注解
元注解:可以注解到别的注解上的注解;
组合注解:1、被元注解 注解的注解,具备元注解的功能(是吗);2、多个注解组合到一块生成一个新的注解(貌似很有道理)
条件注解:根据条件选择bean对象的创建,状态模式的一种体现,多态的应用部分
为每种独立的条件创建一个类,根据这个类对应的条件的成立情况我们来选择不同的任务来执行。使用接口声明任务;
7、Field resourceMapper in com.giska.service.ResourceServiceImpl required a bean of type 'com.giska.mapper.ResourceMapper' that could not be found.找不到这个文件,我看了又看、想了又想,jar、jdk配置、注解都没有问题啊,想想哪里还和数据库、mapper有关系:启动类
看了一下启动类是这么写的:
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
把()里面的东西去了,重新启动、没有问题了;我的天~
8、今天帮小伙伴解决问题的时候把没有保存的笔记关了,现在回忆不起来今天做什么了,现在效率好low,不抱怨,记录问题吧,今天关于分页的问题我遇到一次、小伙伴遇到一次,我这里的分页还好,一会解决了,他们开始也分不了页、我给各种修改了之后还是不行,换了一个接受数据库数据的list(那个方法里面有几个list)分页可以,再换回来、不行,在改、不行,改回来、可以了……这就尴尬了,说了这么多废话、大家可以体会到我的心情了吧,下面就可以写一下这么分页 吧:
springboot首先在pom文件中引入分页插件:
com.github.pagehelper
pagehelper
4.0.0
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.5
在application.properties或yml文件中添加:
#分页配置
pagehelper.reasonable=true;//智能处理
pagehelper.support-methods-arguments=true;
开始分页:
//分页的类,包装一下
PageModel pageModel = new PageModel();
…………逻辑处理
//获取分页信息,总记录数,总页数,当前页码,
PageInfo pageInfo = new PageInfo<>(resourceList);
如果不行的话、等一下或者换一个单纯点的list成功了之后再换回来,不行的话、等一会(这样确实不符合逻辑,我也很无奈,菜的感觉真不好)
9、今天还有个收获是数据库里面的时间戳,
问题使我成长,问题使小伙伴设置了两个列都是时间戳,一个没有问题一个没有值,这是什么情况?下面来了解下
首先建一张表,设置好时间戳:)
CREATE TABLE `timestamp_example` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`insert_row` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`update_row` timestamp NOT NULL DEFAULT ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `measured_on` (`measured_on`)
) ENGINE=InnoDB;
1、DEFAULT CURRENT_TIMESTAMP:insert操作,这个字段有没有set都插入当前系统时间;
2、ON UPDATE CURRENT_TIMESTAMP:update操作,值有没有变化、这个字段的值都会更新为update操作的时间;
3、不设置上面的等同于设置为DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
时间戳是数据库中自动生成的唯一二进制数字,与时间和日期无关的, 通常用作给表行加版本戳的机制。存储大小为 8个字节,不适合作为键使用;(待理解)
这个链接是pageinfo的变量
小结:
知识的小船总是划不到岸