先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
正文
package com.springbootjunit04;
import com.Dao.UserDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Springbootjunit04ApplicationTests {
//1、注入想要让spring管理的值
@Autowired
private UserDao userDao;
@Test
void contextLoads() {
//2、执行你要测试对象对应的方法
userDao.save();
}
}
运行结果
@Autowired出现找不到注入对象的原因
出现这种错误是因为springboot默认扫描这个启动类所在的包及其子包,所以就无法识别了,只需要将启动类移动到编写的Dao包之上即可重新被识别。
核心:@SpringBootTest
名称:@SpringBootTest
类型:测试类定义上方
作用:设置Junit加载的SpringBoot启动类
@SpringBootTest
class Springbootjunit04ApplicationTests {}
整合Junit步骤:
1、导入测试对应的starter(springboot已经在pom.xml完成)
2、测试类使用SpringBootTest注解(SpringBoot完成了)
3、使用自动装配的形式添加要测试的对象
classes属性
相关属性:设置SpringBoot启动类
我们一开始设置在com包下的Test类,移出去启动后就会报错,原因是一开始在com包,springboot就会去同名上的com包下去找,如果这个test类在引导类的包下及其子包下则不会报错。报错的原因是test类找不到引导类(启动类)
所有只需要使用classes标签
@SpringBootTest(classes = Springbootjunit04Application.class)
如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的设置,也就是省略classes的设定
2、整合MyBatis
创建一个新的模块
配置文件中:配置数据库相关信息application.yml中
#配置相关信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC
username: root
password: 123456
数据库中的表
创建一个pojo包下的Person类
package com.pojo;
import lombok.Data;
@Data
public class Person {
private Integer id;
private String username;
private String password;
private String gender;
private String addr;
}
创建一个dao包下的PersonDao接口
package com.dao;
import com.pojo.Person;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;
import java.util.List;
@Component//交给spring容器管理
@Mapper//使用注解配置映射
public interface PersonDao {
@Select("select *from tb_user")
List<Person> personList();
}
在测试类下
package com;
import com.dao.PersonDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Springboot05MybatisApplicationTests {
//测试,先注入dao对象
@Autowired
private PersonDao personDao;
@Test
void contextLoads() {
System.out.println(personDao.personList());
}
}
运行结果:
小结:
1、勾选Mybatis技术,也就是导入mybatis对应的starter
2、数据库连接相关信息转换成配置
3、数据库sql映射需要添加@Mapper被容器识别到
**@Mapper注释用来表示该接口类的实现类对象交给mybatis底层创建,然后交由Spring框架管理**
mysql8遇到时区错误
mysql8以上的版本的加上时区?serverTimezone=UTC不然会报错
url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC
小结:
1\mysql8以上的版本驱动有前置要求设置时区
- 修改url,添加sercerTimezone设定
- 修改mysql数据库配置(永久设置)
2、驱动类过时,提醒更换为com.mysql.cj.jdbc.Driver
3、整合Mybatis-plus
使用aliyun创建springboot,或者导入Mybatisplus坐标
dao层的变为,不用写任何方法,点ctrl+鼠标点击进去BaseMapper中可以看到提供了很多方法。
@Data
@TableName("tb_user")//告诉是哪张表
public class Person {
private Integer id;
private String username;
private String password;
private String gender;
private String addr;
}
这需要在pojo对象中加上,告诉mp是哪张表。@TableName(“tb_user”)
package com.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pojo.Person;
import org.apache.ibatis.annotations.Mapper;
@Mapper//使用注解配置映射
public interface PersonDao extends BaseMapper<Person> {
}
测试类中
package com;
import com.dao.PersonDao;
import com.pojo.Person;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
@SpringBootTest
@MapperScan("com.dao")//扫描dao的包,扫描到mapper
class Springboot06MybatisplusApplicationTests {
@Resource
private PersonDao personDao;
@Test
void contextLoads() {
System.out.println(personDao.selectById(1));
}
}
运行结果
Springboot整合mybatis-plus
①手动添加添加springboot整合mp的坐标,可以通过mvnrepository获取
注:由于springboot没有收录mp的坐标版本,需要指定对应的version
②定义数据层接口与映射配置,继承BaseMapper
测试类中注入dao接口,使用即可。
注:需要使用的第三方技术无法创建时勾选时,就手工添加
出现No qualifying bean of type ‘com.dao.PersonDao’ available错误
这个本质就是springboot找不到dao,只需要在启动类中加入@MapperScan(“com.dao”)就可以正常访问了
MyBatisPlus常用功能
1、 给Mp开启日志
在配置文件中写入
#打印日志
mybatis-plus:
configuration:
#标准输出
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
运行一个查看所有的方法,控制台输出如下
2、 MP的分页功能
定义一个类做拦截器
package com.config;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//分页相关
@Configuration//是一个配置
public class MPConfig {
@Bean//给spring管理
public MybatisPlusInterceptor mybatisPlusInterceptor(){
//定义Mybatis拦截器
MybatisPlusInterceptor interceptor=new MybatisPlusInterceptor();
//添加具体的拦截器
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
![img](https://img-blog.csdnimg.cn/img_convert/1bceb14706ccf7a3fed2ceecffee8fb4.png)
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
sPlusInterceptor mybatisPlusInterceptor(){
//定义Mybatis拦截器
MybatisPlusInterceptor interceptor=new MybatisPlusInterceptor();
//添加具体的拦截器
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
[外链图片转存中...(img-JP9Y00GQ-1713325871060)]
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**