Spring
Spring内部默认整合Mybatis,直接导入依赖即可
spring相关依赖
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.16</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.16</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.16</version>
</dependency>
</dependencies>
配置类
@ComponentScan("com.itheima")
public class SpringConfig {
@Bean
public DruidDataSource dataSource(){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/spring");
dataSource.setUsername("root");
dataSource.setPassword("1234");
return dataSource;
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
MapperScannerConfigurer configurer = new MapperScannerConfigurer();
configurer.setBasePackage("com.itheima.mapper");
return configurer;
}
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean(DruidDataSource dataSource){
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
return factoryBean;
}
}
Spring写测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class DeptMapperTest {
@Autowired
private DeptService deptService;
@Test
public void testFindAll() {
List<Dept> deptList = deptService.findAll();
deptList.forEach(dept -> System.out.println(dept));
}
@Test
public void deleteByIdTest() {
deptService.deleteById(1);
}
@Test
public void insertDept() {
Dept dept = new Dept();
dept.setId(6);
dept.setName("网管部");
dept.setCreateTime(LocalDateTime.now());
dept.setUpdateTime(LocalDateTime.now());
deptService.insertDept(dept);
}
@Test
public void updateDept(){
Dept dept = new Dept();
dept.setId(5);
dept.setName("外交部");
deptService.updateDept(dept);
}
}
Spring注解
| @Component @Controller @Service @Repository | 标注在自己开发的类上,用于将当前类对象放入Spring容器 |
|---|
| @Bean | 标注在配置类中的方法上,用于将方法的返回值对象放入Spring容器 |
| @Autowired | 标注在类中的属性上,用于从Spring容器中获取属性的值 |
| @Qualifier @Primary | 依赖注入时,根据一个接口查到了多个对象,使用这两个注解确定使用哪个对象 |
| @Scope | 标注在类上,声明对象是单例还是多例 |
| @Configuration | 标注在配置类上,Spring容器启动时会自动加载类中的配置 |
| @ComponentScan | 标注在主配置类上,用于声明包扫描的范围 |