From 3493e4fa3c25c1e66046c601108133271c619381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=99=E6=B6=9B?= <1626038943@qq.com> Date: Mon, 23 Dec 2024 10:54:12 +0800 Subject: [PATCH] 1 --- .../03 Spring 12.23.md" | 293 ++++++++++++++++++ .../spring/.idea/.gitignore" | 8 + .../spring/.idea/compiler.xml" | 15 + .../spring/.idea/dataSources.xml" | 12 + .../spring/.idea/encodings.xml" | 7 + .../spring/.idea/jarRepositories.xml" | 25 ++ .../spring/.idea/misc.xml" | 14 + .../spring/pom.xml" | 76 +++++ .../java/com/aldd/config/JdbcConfig.java" | 30 ++ .../java/com/aldd/config/MybatisConfig.java" | 19 ++ .../java/com/aldd/config/SpringConfig.java" | 14 + .../com/aldd/controller/DeptController.java" | 41 +++ .../src/main/java/com/aldd/entity/Dept.java" | 13 + .../java/com/aldd/mapper/DeptMapper.java" | 29 ++ .../java/com/aldd/service/DeptService.java" | 22 ++ .../aldd/service/Impl/DeptServiceImpl.java" | 41 +++ .../src/main/resources/jdbc.properties" | 4 + .../test/java/com/aldd/test/TestConfig.java" | 52 ++++ .../spring/target/classes/bean.xml" | 32 ++ .../classes/com/aldd/config/JdbcConfig.class" | Bin 0 -> 1290 bytes .../com/aldd/config/MybatisConfig.class" | Bin 0 -> 931 bytes .../com/aldd/config/SpringConfig.class" | Bin 0 -> 833 bytes .../com/aldd/controller/DeptController.class" | Bin 0 -> 2787 bytes .../classes/com/aldd/entity/Dept.class" | Bin 0 -> 1981 bytes .../classes/com/aldd/mapper/DeptMapper.class" | Bin 0 -> 1024 bytes .../com/aldd/service/DeptService.class" | Bin 0 -> 403 bytes .../aldd/service/Impl/DeptServiceImpl.class" | Bin 0 -> 2748 bytes .../spring/target/classes/jdbc.properties" | 4 + .../com/aldd/test/TestConfig.class" | Bin 0 -> 2057 bytes .../com/aldd/test/TestDept.class" | Bin 0 -> 2048 bytes 30 files changed, 751 insertions(+) create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/03 Spring 12.23.md" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/.gitignore" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/compiler.xml" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/dataSources.xml" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/encodings.xml" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/jarRepositories.xml" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/misc.xml" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/pom.xml" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/config/JdbcConfig.java" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/config/MybatisConfig.java" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/config/SpringConfig.java" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/controller/DeptController.java" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/entity/Dept.java" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/mapper/DeptMapper.java" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/service/DeptService.java" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/service/Impl/DeptServiceImpl.java" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/resources/jdbc.properties" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/test/java/com/aldd/test/TestConfig.java" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/bean.xml" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/config/JdbcConfig.class" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/config/MybatisConfig.class" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/config/SpringConfig.class" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/controller/DeptController.class" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/entity/Dept.class" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/mapper/DeptMapper.class" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/service/DeptService.class" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/service/Impl/DeptServiceImpl.class" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/jdbc.properties" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/test-classes/com/aldd/test/TestConfig.class" create mode 100644 "\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/test-classes/com/aldd/test/TestDept.class" diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/03 Spring 12.23.md" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/03 Spring 12.23.md" new file mode 100644 index 000000000..af2128a80 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/03 Spring 12.23.md" @@ -0,0 +1,293 @@ +## 一、初体验 +1. 官网:https://spring.io/ +2. Spring要和,JDK版本对应得上,否则会报错信息类似:Failed to read candidate component class,也就是注解扫描不了,这是版本兼容问题引起的,根据Spring官网Spring Framework与JDK版本对应表: + +| Spring Framework版本 | JDK版本 | +| -------------------- | --------- | +| 6.0.x | JDK 17-21 | +| 5.3.x | JDK 8-19 | +| 5.2.x | JDK 8-15 | +| 5.1.x | JDK 8-12 | +| 5.0.x | JDK 8-10 | +| 4.3.x | JDK 6-8 | +3. Spring Framework的特点 + 1. 控制反转:IoC,反转资源获取方向;把自己创建的资源、向环境索取资源变为环境将资源准备好,我们享受资源注入。 + 2. 面向切面编程:AOP,在不修改源代码的基础上增强代码功能。 + 3. 容器:Spring IoC是一个容器,因为它包含并管理组件对象的生命周期;组件享受到了容器化的管理,替程序员屏蔽了组件创建过程中的大量细节,极大降低了使用门槛,大幅度提高了开发效率。 + 4. 一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方库,而且在Spring旗下的项目已经覆盖了广泛领域,很多方面的功能性需求可以在Spring Framework 的基础上全部使用Spring来实现。 +4. 入门案例 + 1. 环境要求: + - JDK : 1.8 + - Spring : 5.3.39 + 2. 构建工程项目 + 3. pom.xml中引入相关依赖,并 刷新maven +-------------------------- +```xml + + + org.springframework + spring-context + 5.3.39 + + + junit + junit + 4.13.2 + test + + +``` +------------------------- + 4. 创建软件包 + ![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/20241215222659.png) + 5. 创建用于测试的实体类Teacher + ![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/20241215222947.png) + 6. **创建spring配置文件:resources目录下创建bean.xml** +![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/20241215223246.png) +![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/202412191016646.png) +![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/202412191016805.png) +![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/20241215223436.png) + 7. **在bean.xml中用标签完成对象创建** +------------------- +```xml + + + + + +``` +---------------------------- + 8. **创建测试类com.md.test.TestTeacher进行测试** +------------ +```java +public class TestTeacher { + @Test + public void t1() { + // 1.加载spring配置文件,得到IOC容器context + ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml"); + // 2.从IOC容器获取spring创建好的对象 + Teacher teacher = (Teacher) context.getBean("teacher"); + // 3.使用对象调用方法测试 + System.out.println("teacher = " + teacher); + teacher.teach(); + } +} +``` +![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/20241215224418.png) + +----------------------- +## 二、一些术语概念 +### 1. IoC容器 +1. IoC 是 Inversion of Control 的简写,译为 控制反转。 +2. IoC容器 + 1. 管理着所有的Java对象的实例化和初始化, + 2. 控制着对象与对象之间的依赖关系。 + 3. IoC容器管理的Java对象称为 Spring Bean, + 4. 它与使用关键字 new 创建的Java对象没有任何区别。 +3. IoC容器是Spring框架中最重要的核心组件之一,它贯穿了Spring从诞生到成长的整个过程。 + +### 2. 控制反转( IoC ) +> 控制反转是一种思想 + +1. 将对象的创建权利交出去,交给第三方容器(IOC容器)负责 +2. 将对象和对象之间的关系维护权交出去,交给第三方容器负责 + +>如何实现控制反转 + +- 通过依赖注入DI的方式实现 + +### 3. 依赖注入( DI ) +DI (Dependency Injection):依赖注入,依赖注入实现了控制反转的思想,是指Spring创建对象的过程中,将对象依赖属性通过配置进行注入。 + +>依赖注入常见的实现方式有两种: + +1. set注入 ,常用 +2. 构造器注入 + +>结论: IoC 是一种控制反转的思想,而 DI 是对IoC的一种具体实现。 + +Bean管理:指对IOC容器中的Bean对象的创建,以及Bean对象中属性的赋值(或Bean对象之间关系的维护) + +### 4. IoC容器的实现 +>Spring中的IoC容器就是IoC思想的一个落地产品实现。IoC容器中管理的组件也叫做bean。在创建bean之前,首先需要创建IoC容器,Spring提供了IoC容器的两种实现方式 + +① BeanFactory + +这是IoC容器的基本实现,是Spring内部使用的接口。面向Spring本身,不提供给开发人员使用。 + +② ApplicationContext + +BeanFactory的子接口,提供了更多高级特性,面向Spring的使用者,几乎所有场合都使用 ApplicationContext,而不是底层的BeanFactory + +③ ApplicationContext的主要实现类 +![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/20241215230030.png) + +--------------- +| 类型 | 说明 | 路径示例 | +| ------------------------------ | -------------------------------------------------- | -------------------------------------------- | +| ClassPathXmlApplicationContext | 通过读取类路径下的xml格式配置文件创建IoC容器对象 | appcontext.xml | +| FileSystemApplicationContext | 通过文件系统路径读取xml格式配置文件创建IoC容器对象 | file:F:/workspace/example/src/appcontext.xml | +--------------- + +## 三、如何通过XML管理Bean + +1. 还是 com.mdd.entity.Teacher 为例,来演示 +2. 获取bean方式 + 1. 根据id获取: + 1. id属性是bean的唯一标识,所以根据bean标签的id属性可以精确获取到一个组件对象。 + 2. ![](https://gitee.com/onesheet/images_backup/raw/master/images/202412191016571.png) + 2. 根据类型获取 + 1. ![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/202412191016728.png) + + 3. 根据id和类型获取 + 1. ![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/20241215231631.png) + + + +>注意: 当根据类型获取bean时,要求IoC容器中指定类型的bean只能有一个,当配置两个时会抛出异常 + + +### * 依赖注入的两种常见方式 +>类是有属性的,创建对象过程中,如何向属性注入具体的值? + +1. 方式1:使用set方法完成(使用xml中的标签实现) +2. 方式2:基于构造器完成 + + +1. 使用set方法完成 + 1. 类中补充setter toString + 1. ![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/202412191016811.png) + + 2. 修改bean.xml,进行属性值注入 + 1. ![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/20241215232345.png) + 2. 测试: + 1. ![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/20241215232424.png) + + +3. 基于构造器依赖注入 + 1. 补全类中的构造器 + 1. ![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/202412191016440.png) + + 2. 修改bean.xml + 1. ![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/202412191016644.png) + + 3. 测试 + 1. !![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/202412191016926.png)[image.png](https://gitee.com/onesheet/images_backup/raw/master/images/20241215232915.png) + + +4. 不同类型的属性有不同的表示方式 + 1. 简单类型 : value + 2. 对象引用类型 : ref + 3. 数组 \value或ref\ + 4. 集合\value或ref\ + 5. 空值 \\ + + + +5. 练习 + 1. 使用spring框架完成以下操作 + 2. 分别创建老师,课程,学生三个类,每个类要有三个属性,做成javabean + 3. 配置bean.xml进入Bean管理,分别创建老师,课程,学生的bean + 4. 老师有:姓名,多门课程(数组),多个学生(集合) + 5. 课程有:课程名称,学分 + 6. 学生有:姓名,年龄,一个任课老师。 + 7. 编写测试类,对每种bean进行测试。 + + +## 进阶一: +1. 使用lombok 快速创建javabean的类 +2. 特殊类型的注入,实体符< > +3. ]]> +4. 4. druid数据源 https://zhuanlan.zhihu.com/p/690241776 +5. 外部属性文件的引入, +6. 自动装配 +7. 三层架构:dao,service,controller + 1. 详解三层架构 是什么? 为什么? 怎么做? + 2. ![image.png](https://gitee.com/onesheet/images_backup/raw/master/images/20241219150430.png) + + 3. https://blog.csdn.net/S_yyuan/article/details/121554927 + 5. 步骤 + 1. 创建好各个软件包:entity->dao->service->controller + 2. 创建实体类 User(用来封装数据),(相当于做菜品材料) + 3. 创建数据访问层 (采购员) + 1. UserDao 接口 ,相当于采购员岗位,接口中的方法。相当于岗位职责 + 2. UserDao 接口的实现类UserDaoImpl,相当于聘请的具体采购员,要符合岗位职责,所以要实现所有方法 + 3. 在UserDaoImpl实现类中,写操作数据库的具体逻辑(具体的采购办法) + 4. 创建业务逻辑层 (厨师) + 1. UserService 接口,明确厨师的岗位职责,编写业务层要实现的功能方法 + 2. UserService 接口的实现类UserServiceImpl,相当于根据厨师岗位职责招聘来的厨师,所有要具备厨师岗位所有技巧,即实现接口的所有方法 + 3. 在UserServiceImpl实现类中,厨师做菜,要有材料,所以依赖于采购员,把采购员UserDao做为一个类属性注入进来 + 4. 在UserServiceImpl实现类中,对UserDao传过来的数据,做进一步处理。相当于加工材料做成菜。 + 1. 厨师做菜的材料,是依赖采购员来采购的。所以 + 2. 在UserServiceImpl实现类中要定义一个UserDao的属性 + 3. 在Bean中将UserDao对象入注入进来 + 5. 创建表示层 (服务员) + 1. UserController 类, + 1. 负责接收用户请求,并转发给UserServiceImpl:相当于服务员接收顾客点菜后,将菜单订单转发给厨师,厨师会根据这个订单开始做菜 + 2. 负责接收UserServiceImpl的响应,将转发给用户:相当于服务员将厨师做好的菜。端给前面点菜的顾客。 + 3. 因为厨师做好了菜之后,服务员才能将菜端给顾客,所以服务员的工作是依赖于厨师的。 + 1. controller 类中要定义一个 UserService的属性 + 2. 在Bean中将UserServicec对象注入进来 + 6. 总结 + 1. Controller依赖Service,Service依赖Dao + 2. 所以controller的bean要注入Service,Service的bean要注入Dao +8. ### **注解开发** + 1. 项目结构如bean.xml时一样 + 2. 新建config包,并创建SpringConfig类,里面改写bean.xml的配置 + 3. SpringConfig 配置 + 1. 声明自己是一个配置类 @Configuration + 2. 扫描Bean所在的包@ComponentScan("com.pdd") + 3. 为了方便管理,将jdbc和mybatis的配置单独成一个子配置文件 + 1. JdbcConfig + 1. @Component 声明自己是组件一部分 + 2. @PropertySource("classpath:jdbc.properties") 加载外部的属性文件 + 3. 以@Value注解,注入四个属性变量@Value("${jdbc.driver}") + 4. 以自定义方法的形式,public DruidDataSource getDruidDataSource(){ 返回一个DataSource对象 + 5. 不要忘记在这个方法上加上@Bean注解 + + 2. MybatisConfig + 1. @Component 声明自己是组件一部分 + 2. @MapperScan("com.pdd.mapper") 扫描mapper代理接口所在的包 + 3. 以自定义方式的形式, 返回一个SqlSessionFactoryBean的对象 + 4. 不要忘记在这个方法上加上@Bean注解 + 4. @Import({JdbcConfig.class, MyBatisConfig.class}) 将刚才创建的两个子配置文件导入进来 + 5. 新建测试类 + 1. 手动方式 ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); 得到IOC容器。由xml转为从配置类中获取容器。 + 2. 依赖注入的方式 + 1. @RunWith(SpringJUnit4ClassRunner.class) 测试类上方加这个注解 + 2. @ContextConfiguration(classes = SpringConfig.class) 测试类上方加这个注解 + 3. 直接将需要的对象,以属性自动装配的方式注入 @Autowired private DeptController deptController; + 4. 直接使用这个注入的对象 Dept dept = deptController.selectOneById(3); + + +Spring 常用注解 +组件定义与依赖注入 + +在Spring中,可以使用以下注解来定义组件并注入依赖: + +- _@Component_:通用组件,不指定角色。 + +- _@Service_:用于业务逻辑层(Service层)。 + +- _@Repository_:用于数据访问层(DAO层)。 + +- _@Controller_:用于表示层(Controller层)。 + +- _@Autowired_:自动注入Spring容器管理的bean。 + +- @PropertySource 加载外部属性文件 + + +配置与作用域 + +- _@Configuration_:声明一个类为配置类,相当于XML形式的Spring配置。 + +- _@Bean_:用于在配置类中声明一个bean。 +- @ComponentScan({"com.pdd.controller","com.pdd.service"}) 将自己建的类,要生成bean所在的包 +- @Import({JdbcConfig.class, MyBatisConfig.class}) 导入子配置文件 +- @MapperScan mybatis提供的,扫描接口的注解,为了的给所有接口生成对应的实现类的bean \ No newline at end of file diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/.gitignore" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/.gitignore" new file mode 100644 index 000000000..35410cacd --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/.gitignore" @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/compiler.xml" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/compiler.xml" new file mode 100644 index 000000000..ee7ec6159 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/compiler.xml" @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/dataSources.xml" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/dataSources.xml" new file mode 100644 index 000000000..f66664f6b --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/dataSources.xml" @@ -0,0 +1,12 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306 + $ProjectFileDir$ + + + \ No newline at end of file diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/encodings.xml" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/encodings.xml" new file mode 100644 index 000000000..aa00ffab7 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/encodings.xml" @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/jarRepositories.xml" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/jarRepositories.xml" new file mode 100644 index 000000000..c7ea92037 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/jarRepositories.xml" @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/misc.xml" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/misc.xml" new file mode 100644 index 000000000..132404bc2 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/.idea/misc.xml" @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/pom.xml" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/pom.xml" new file mode 100644 index 000000000..9da37c343 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/pom.xml" @@ -0,0 +1,76 @@ + + + 4.0.0 + + org.example + untitled + 1.0-SNAPSHOT + + + 8 + 8 + UTF-8 + + + + + org.projectlombok + lombok + 1.18.36 + compile + + + + org.mybatis + mybatis + 3.5.16 + + + + com.mysql + mysql-connector-j + 8.3.0 + + + + junit + junit + 4.13.2 + test + + + + org.springframework + spring-context + 5.3.39 + + + + org.springframework + spring-jdbc + 5.3.39 + + + + com.alibaba + druid + 1.1.21 + + + + org.mybatis + mybatis-spring + 2.0.6 + + + + org.springframework + spring-test + 5.3.39 + + + + + \ No newline at end of file diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/config/JdbcConfig.java" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/config/JdbcConfig.java" new file mode 100644 index 000000000..dd72e1b66 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/config/JdbcConfig.java" @@ -0,0 +1,30 @@ +package com.aldd.config; + +import com.alibaba.druid.pool.DruidDataSource; +import org.apache.ibatis.annotations.Property; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.PropertySource; +import org.springframework.stereotype.Component; + +@Component +@PropertySource("classpath:jdbc.properties") +public class JdbcConfig { + @Value("${jdbc.driver}") + private String driverClassName; + @Value("${jdbc.url}") + private String url; + @Value("${jdbc.username}") + private String username; + @Value("${jdbc.password}") + private String password; + @Bean + public DruidDataSource gitDruidDataSource(){ + DruidDataSource dataSource = new DruidDataSource(); + dataSource.setDriverClassName(driverClassName); + dataSource.setUrl(url); + dataSource.setUsername(username); + dataSource.setPassword(password); + return dataSource; + } +} diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/config/MybatisConfig.java" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/config/MybatisConfig.java" new file mode 100644 index 000000000..2dbd72d3e --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/config/MybatisConfig.java" @@ -0,0 +1,19 @@ +package com.aldd.config; + +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component +@MapperScan("com.aldd.mapper") +public class MybatisConfig { + @Bean + public SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource datasource) { + SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); + sqlSessionFactoryBean.setDataSource(datasource); + return sqlSessionFactoryBean; + } +} diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/config/SpringConfig.java" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/config/SpringConfig.java" new file mode 100644 index 000000000..0b2dccfa0 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/config/SpringConfig.java" @@ -0,0 +1,14 @@ +package com.aldd.config; + +import com.aldd.entity.Dept; +import org.springframework.context.annotation.*; + +@Configuration +@ComponentScan({"com.aldd.controller", "com.aldd.service"}) +@Import({JdbcConfig.class, MybatisConfig.class}) +public class SpringConfig { + @Bean + public Dept getDept() { + return new Dept(); + } +} diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/controller/DeptController.java" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/controller/DeptController.java" new file mode 100644 index 000000000..71d401e51 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/controller/DeptController.java" @@ -0,0 +1,41 @@ +package com.aldd.controller; + +import com.aldd.entity.Dept; +import com.aldd.service.DeptService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Controller; + +import java.util.List; +@Data +@Controller +public class DeptController { + @Autowired + private DeptService deptService; + + //查询全部 + public List selectAllDept() { + return deptService.selectAllDept(); + } + + //根据id查询 + public Dept selectDeptById(int id) { + return deptService.selectDeptById(id); + } + + //根据id删除 + public String deleteDeptById(int id) { + return deptService.deleteDeptById(id) ? "删除成功" : "删除失败"; + } + + //添加 + public void insertDept(Dept dept) { + deptService.insertDept(dept); + } + + //修改 + public void updateDept(Dept dept) { + deptService.updateDept(dept); + } +} diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/entity/Dept.java" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/entity/Dept.java" new file mode 100644 index 000000000..9cc85e197 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/entity/Dept.java" @@ -0,0 +1,13 @@ +package com.aldd.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Dept { + private int deptId; + private String deptName; +} diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/mapper/DeptMapper.java" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/mapper/DeptMapper.java" new file mode 100644 index 000000000..6f44e5ddf --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/mapper/DeptMapper.java" @@ -0,0 +1,29 @@ +package com.aldd.mapper; + +import com.aldd.entity.Dept; +import org.apache.ibatis.annotations.*; + +import java.util.List; +@Mapper + +public interface DeptMapper { + //查询全部 + @Select("select dept_id deptId,dept_name deptName from dept") + List selectAllDept(); + + //根据id查询 + @Select("select dept_id deptId,dept_name deptName from dept where dept_id = #{id}") + Dept selectDeptById(int id); + + //根据id删除 + @Delete("delete from dept where dept_id = #{id}") + int deleteDeptById(int id); + + //添加 + @Insert("insert into dept (dept_name) values (#{deptName})") + void insertDept(Dept dept); + + //修改 + @Update("update dept set dept_name = #{deptName} where dept_id = #{deptId}") + void updateDept(Dept dept); +} diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/service/DeptService.java" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/service/DeptService.java" new file mode 100644 index 000000000..903d5a93f --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/service/DeptService.java" @@ -0,0 +1,22 @@ +package com.aldd.service; + +import com.aldd.entity.Dept; + +import java.util.List; + +public interface DeptService { + //查询全部 + List selectAllDept(); + + //根据id查询 + Dept selectDeptById(int id); + + //根据id删除 + Boolean deleteDeptById(int id); + + //添加 + void insertDept(Dept dept); + + //修改 + void updateDept(Dept dept); +} diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/service/Impl/DeptServiceImpl.java" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/service/Impl/DeptServiceImpl.java" new file mode 100644 index 000000000..0f97b117e --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/java/com/aldd/service/Impl/DeptServiceImpl.java" @@ -0,0 +1,41 @@ +package com.aldd.service.Impl; + +import com.aldd.entity.Dept; +import com.aldd.mapper.DeptMapper; +import com.aldd.service.DeptService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +@Data +@Service +public class DeptServiceImpl implements DeptService { + @Autowired + private DeptMapper deptMapper; + + @Override + public List selectAllDept() { + return deptMapper.selectAllDept(); + } + + @Override + public Dept selectDeptById(int id) { + return deptMapper.selectDeptById(id); + } + + @Override + public Boolean deleteDeptById(int id) { + return deptMapper.deleteDeptById(id) > 0; + } + + @Override + public void insertDept(Dept dept) { + deptMapper.insertDept(dept); + } + + @Override + public void updateDept(Dept dept) { + deptMapper.updateDept(dept); + } +} diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/resources/jdbc.properties" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/resources/jdbc.properties" new file mode 100644 index 000000000..710994228 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/main/resources/jdbc.properties" @@ -0,0 +1,4 @@ +jdbc.driver=com.mysql.cj.jdbc.Driver +jdbc.url=jdbc:mysql:///aldd +jdbc.username=root +jdbc.password=123456 \ No newline at end of file diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/test/java/com/aldd/test/TestConfig.java" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/test/java/com/aldd/test/TestConfig.java" new file mode 100644 index 000000000..30d8fef82 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/src/test/java/com/aldd/test/TestConfig.java" @@ -0,0 +1,52 @@ +package com.aldd.test; + +import com.aldd.config.SpringConfig; +import com.aldd.controller.DeptController; +import com.aldd.entity.Dept; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.List; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = SpringConfig.class) +public class TestConfig { + @Autowired + private DeptController deptController; + @Autowired + private Dept dept; + + @Test + public void testSpring() { + List deptList = deptController.selectAllDept(); + System.out.println(deptList); + } + + @Test + public void testSelectDeptById() { + Dept dept = deptController.selectDeptById(2); + System.out.println(dept); + } + + @Test + public void testDeleteDeptById() { + String s = deptController.deleteDeptById(1); + System.out.println(s); + } + + @Test + public void testInsertDept() { + dept.setDeptName("摸鱼部"); + deptController.insertDept(dept); + } + + @Test + public void testUpdateDept() { + dept.setDeptId(1); + dept.setDeptName("搬砖部"); + deptController.updateDept(dept); + } +} diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/bean.xml" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/bean.xml" new file mode 100644 index 000000000..3a1838d5c --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/bean.xml" @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/config/JdbcConfig.class" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/config/JdbcConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..385f4a2bed6724a8490c3bc90323147019b00218 GIT binary patch literal 1290 zcma)5TTc@~6h2!@TiRl=3fO{o#L^1u1qFeaXo(M|K_c43_%z)e%HVcqGdo3z@jq!| zN}`EBz#nD&X181dHTtl7zH|M~nK|?8_xGPfv`A}N8l_sA?qn%JwGqnGyg>^F*#_M; z=$=9M4SHbEVwxVN>5)YRSBX8Y>K+Tj4c6fn6&t&3kJ%pc+xC`L!f&ryRC?9*wdnAs z2t~`|Pkmo%riJuFixwMFwe2u4q1y^IK1lW6ZgJ*^_BM00RQonNO0b*E>vEJF-ZQ|W zb2FcI-IlWuH}ct{p|0{Q%Jt1qV9RtvuKcLKu|r4SV!Q#m2dit*q4&@NZ)#2WLO(&_ z%3RZ;WL>(TEi{DBH@ck`SFagHGJ{Kpc}=E-(fh`v-VvB_y5Y!<%{F9Z2xlnV(rQQ#?U6-9e`rOy3wKOnz0QaVn0atoI z=0;}8G5Z!Uy|WVCeGmr-9_Fb`Qx?s}$NjH^%hNe3v(#jc(6&l zJ~T~Wg_eUnkFOZg1voInS;sgW80oBI5)Mpw)=`23BhwWA(_pb7Ey&^O0a;%G5_B2= zRAkK472tdvKv(G+Gz;zCK$J;VkO|1@4@$f}prJ;s`i+u38a6W3qqLEk9*r28?NP4w z1<^4>85~5DltG_kRKmZE`cqUvWy3lVSMIZBzYx15Pi;P32D;?S{i6+flFFSeBoAvM1y)tKq3$cadI|paM`uDYo|2-3NBOv zi66j^LX5o?UkV8JFtan`c{B57zI^@o8NhwqsiA_6DmH5RcuwU%}{xuv~mv_ zitU{tL#b=VlA+O4T0WU3BbhxHqnJF+o{2;}6q)k&g|p;dE6cFei%h~rJRbAN=p!}Z z{n+BllkXd>cX z0Lptk%0wdHn(U3|#K|+q#rLP&kM7&fXFXJb;a^DWcv2Yh)_zB{PG-`$St@zgB&pF- zJA#`#$4^!JB28sBh(hi1sfee3)wH{g-(4pO;X0~VU}*m<`*qyHZHCRio&dwLpNGeS zmiTmZEF;ITXr=qHaE8{OE@4O|%5=g0D}eb1NnRq0lV+sLyXRoln*CP zoAjh|9x=qJ^3T=8Gi)CmF2Kro?az705NPLJNq(+Iy3o|(sWH|IudSgD#{=t9UR127 zPUPx~b)Q2sufBRN=1~4j2}4}np)H+MFLaQ;zO1HyCZ>Yn;bjSDGnB4ULd^eBm`|*s z5r?vp)S8N{BsH6~tA5y3Kgf4B%amhSn@0=frdkq^UsmEvYUIKOcNeQA?(hz;#)+Iw zK3xWN9*xaPdzD_Hvt0#O(4~8C2EY}%f$mpvjYvZA{fZ3e{6zHO0*!AJi?FEg sE!B7G`c=XN_O%MTUY#2V(R*lMlk65{uYW{T;6{O)*sfiP9f@0i0iwX#ivR!s literal 0 HcmV?d00001 diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/controller/DeptController.class" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/controller/DeptController.class" new file mode 100644 index 0000000000000000000000000000000000000000..96b3ff6f8ca83b39cfd0a635ec7dc399d125cba6 GIT binary patch literal 2787 zcmai0U2_vv7=F$+UnEOu11YU7@~NZ=W&J<}(xPqou$lr=tQNo6Bul$=yBjwfnEnIC zD{k>dFHml{fEf&f&NzCbGyV@8{SPWWXLp-yXc%VNbN1|>_c_n|yw7{uKmPmiX8=dw zY(WNRGdPFya`-?F7t&b3#S}hFVNtF>lEcSo?8H(Mm(mRQL=Ki?(_X&f>TAYz$6eJbhHf{sD|*#)+;vTF2WZnx&$({8 zMvbsr8-`_6y=lvm#|dQf}e zDxED`&RWG;)y^2U;SxjEuz%U`Nwv+ihdMsTPE@ZuW^W{)UJjJp62_NJ-C}KX`G{oa zDp%>C()cAR>_|^^)C@lf#2s(Na0LdWHx5X7+GGd)PtkX5DZfKfRoy-%PZUV4=#7=Y zg_MbPjGwE_lA^W_O$`!`G)F=v-PCG6z|zLS3ecv;9& za(;oU1m{uCDrXj!-(K|pN>C@x>B0kuM^FUraiw54M;QTZ#~zL{io1xtkMn;1DmcJ* zbO%R?^fuopoHG(>^bz`$O;E!=)KIW3gkk^=B2N%OmlZ;=r4Vd51dAzXA$|*~Y~l{$ z*`y@d7a_STf;`+t9uAR<+?|Ayn@-{o51>QCV`ihAi;s{}aG!gF^wU1ieN1|P1U=J6 z&p^W~1QOEi&j8%A8So$h^Uncf=kRc;s^%X6#0w9R?r;lAlks7K(!@hvM;Ii(zQI|@ zp4tS&@;qJRZO;Wdien+ran7>Ni9+!Qh~AWf5+~YHB|;x|lVh)knD;oxi8)&=e2;kS zZt+)SzDB(7Zt)jn<_{HGQ2iwzww^u2;dpG~cVtFlzhUqW)QOQ;3;q6%*j>Uzoe^ks zB!F)dn#Clhs85cSJ3&iJGw-H_rx;sc%e=#<7^H7-Eg%;XqBr8;q$g5(lyrGQHy&PKhsl?)`8D5Q{gUE zNDUP4AUV;(w#!pvy%R44p<&{E?EKSyv&DHQoZ*u~H|FrJpSVnSKa?lDJYq~&2&M`l zo=}s{S`kk(Nw|d_*&Lr+7<$@zQ4f!WG^0u=c;8pC K+`h!-f&T&caV^yV literal 0 HcmV?d00001 diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/entity/Dept.class" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/entity/Dept.class" new file mode 100644 index 0000000000000000000000000000000000000000..b3e5a5304ba9f57d26e7a151e919b4df9fbccb81 GIT binary patch literal 1981 zcma)7U2hvz5Ixu4^{$;w;+n)wNT3M~;Ln&!gaaa&~P(>I5u@`NqI{yw{_gnQI*@f(r8n|J%L!$I`pbd0Z|pu zrLt{yEP+(*k@>_dwN2-swC8ng=b$VQKd`*b&_0^U@`ZBKZPI$SW;@n)zq4<3zclyT z{(HA!wjY>XTk7GV;9*xqUDLCgd@>b=6hu9j$xe*BH;h}!RI?BGE<6g}&1X(OlU6b7 zo4(nm?-7Ih`;V-KSI&M-*4$C5!YcvQ^;%X}U|OcUHsp22KR{jbr46AGP`fZN|IRT`5Zcr%RZ`h9QT_w|*>g2>&J*Jn~ zbNk(fb<36&i_0QhkX1ME7Um4hBP}pDsZ<6&!iNUVV!^-)RtT}X2p3Sxf9S{I7`C3%LOlU*$$E z@b{g(qY~Su7F$<}e_(1+`5kAT!6+^&18BavB8w0`!CjE?#lY8b#yiL$%jo7&MvjGv zuwTz1&$B2#XJrfADJT*v4NcQuVMfCR<1eH&l=#(0^HSslgn3;ds^njl35|EeN&3~} zU{r=6gBk4&4p0dBlu{vNHd)?KD$B`oOOo=i;l&!80t&>vQoCv%VsKti`s zj_D_U)m5zFQ|==C&GWyCuKA61+ruxIhg;fEzV^UTci%w+QC@2}qg@B!X7;dK+<5Lh%qiIMFp)f2fTu+oY9 zm+Xqs(n>}9(%1t6^8-27%$9{9@a{ptVSkjRlqt@s&{o=O>Pj6PW8&tw5+e)B(o7-(V40z5Tb)(~6&2YXpz8>nN` NtJ(654Mbi6+yP_!q*-SWsI^L zxhhLT%5v;b+nOrZHlD|)1Cv(JTJu~#N1fxP?y&24H6 literal 0 HcmV?d00001 diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/service/Impl/DeptServiceImpl.class" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/com/aldd/service/Impl/DeptServiceImpl.class" new file mode 100644 index 0000000000000000000000000000000000000000..b313870c575011b0a4cc3318142c2afbba9777ac GIT binary patch literal 2748 zcmah~TXWM!6#iD0FR?{#5JN~HEtlfh1oc8&zzL9qOWis^38aPIP;4a;Q6yKE!{lG| zxet9TFFe3Z8%jIVX7MY|2c$yV^bH+wYw7oy}kW{`@O|(^&6AAF4Sl z;F=t+%i%^AALFK6Ez03m79+Tw#!{B1pUB};xpPMjchmSRi+OUah$sx?$Jr`bMy&UuvJ01x9bS9N*e7m#n6>Y@4%=1c+ZRtkaL7#2;?gPs+>xA9YG;Ooy z&)T-UO<=e%S-o#;8hXpOY`tnVeHy9rZrv0Zs9KJBt+laidbbR6pmo))8TOLlS@JvD zRQ)xJq)v3=X`0@qRWtRv-wF`Q=jqrV zl9$ZqwkmZdsZg2hZ7!f#G!PYf)fuvHcD(Y^D+t;)oK=0!b#10jCTGz%YU?ae6j|1C z7>XZeYP8V%rpYBHtR5sY-`j$PZ#C*hNI@VqZ8?^IULaABzGG3LE6!$*QV&;ccVpRI z*RPt6=@BC+;;I>t+L6*>Ch>p8#H#Odn25#FEk4OAWq#cqU%)S;+Ra#4$Z;fB(}v~VrvLwYKC)J-pA#d(Oe7V$Mmpz$s0E- z3ztdAGn*}&ip|9UXz#m=zU%{meLGSLsv7RHsM$rg<<-n9mK5+lS<9FjPssoT3OyUD z>6@PE`dbZCk6g+c_TxYrH4S4J*KiESH55=!!_=^XRShMa)S%1ZO}r&=yj>Ow>7_lP zVHRgKzC!P6I3rhcm>1aJNp2X-T+6cSGPPqbL{aEuc}Bw;EIHg~jV3i*#Rmd|9jLHQ ze15u^#XtoPwvW5?LAkSmSel^@YScpl=}p6Knb%hY@`by-yDTMNJBQ6V6_-|2uei&u zs9DKf_B&FHNpQD4Ugrxv0utd*k#*xd%Evy%`5hD;1V`ybE4)U0;0S*Tj&hGu;3$zUa7W>slSpIFkWjjy4g^s7&@6(Y1Kz+1 zf>4i`jKFS3VEG74Rq!3s>O-iBpOBOk6ETX1Vz~J>Za%^-(mDxc=%T!WLXEDNkMk`( zLrTFDT85!#1CB=+@X;7{u8p0;6iyLHNYTFpFx?G!f`Elr0J4F2xy+~@TtM>0r^s}; zg=NVFFkxAe5wExDBv0SrEM#AG0kJeM)_35QK=0xG2sf(^dm%XN@00Z?Np^A z4eln#evdF8b50U-zEu1kN%c|bcl3RWWa3fjH}ox>EN&wkd~%Vyc9O$6b?Q&#M%6zs z^bp$AsJaa;uuvZnCa#MxN2f#hHlcZ(Lz(#*VFjltXN4l3zzp{iD6&<~bER?xTBOpM zztNw@g@2Gw<0Ahu0`W*x`G!T2oF%BtPEv*-xy0Kj%4m1o;hT zl}HnV2VM+aqremF`Ab2gCHW3q=1QR&M{p$y z9F)59oW)WZt`H0rLOf?qI^T-e9lVgwY{c{mXF;apzo7rlQw$6bZevIi-p26oUaq&X Z??vgwH9Q{CjAueYCCK83?FZ~5;6FMF7g7KK literal 0 HcmV?d00001 diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/jdbc.properties" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/jdbc.properties" new file mode 100644 index 000000000..710994228 --- /dev/null +++ "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/classes/jdbc.properties" @@ -0,0 +1,4 @@ +jdbc.driver=com.mysql.cj.jdbc.Driver +jdbc.url=jdbc:mysql:///aldd +jdbc.username=root +jdbc.password=123456 \ No newline at end of file diff --git "a/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/test-classes/com/aldd/test/TestConfig.class" "b/\344\275\231\346\266\233/20241223 \346\263\250\350\247\243\345\274\200\345\217\221/spring/target/test-classes/com/aldd/test/TestConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..50c74d3833fdb694e06b9185cbb591fc8237dfbe GIT binary patch literal 2057 zcmah}+j10D6kR=;WG*zh3{D_u;w|7LAk8HTnivgdc&kjy>I}zJPi5 z2lT~fAARrz%Ni-l@&o)3Eq=ms?bFTlOpIl9)#*O_?7h~$tkZw|{q%PLbNHf+F+FUx{#-xHU`BHl0K11yR8s(dXMu_Buf3%FLmbpyjKwHGb> zUKIGQs{#Yl^`_spY`4|2nq9NC(&sgAVB${fMNV67I-#@WswL0!BRg_@FEnta?gu+o zxEDCy&URq8)gwRn%Gy%47h2nPGxCFd%kBnPOL62sast&NY+lkaFrFo$NE7Yr1b9BQ z;CN27Xkef=vq|@5zoiU})E!T)#qBK>tlP}SK&9?CZFkcS9NDMFeDuI!dM7jRNQIHL z&V?P=c6LZm7E?o~ZlEaH)SZwSjn;SVhqe_*j%$g9uH*e2`+LuMY6pB5GQ!?!7Kt&c zTeTarD4hpQ6`g@{RWp*VU)^7ArN$K+Bb6Bq7E?*MT-)2R8j*CI5W@no>V+!M5UF8f zuVp9UEVJRqK~r6Gq*)_b2hK^A(ju8)l2#CVo(e3^`>qo`Ao}1#+l?8vbm*9cS}R9= z9VG~JR?^QK8?16}*|o!vV8kTW<^RVJaS|(;P#kEHF|yDUAjK9;W$mS6ImVPPovDcv zm@rYnu>w9av5Ff7d~BkQn+2?yxP{v$KEWLm4Xn#{!^Aj_8z}wx-IHgJe|z@Lj|FU+ zxGM*r;+~1ma9>Wp{pqhCzUQfl&vDPdiSD)09mrbBA#3UA5#8F_D@bU z$qXC~wF;J8S7y#x*JchVi+$(;Z|sMWYV&URF}4|M|4b2r3yRa>ct12#FM zthk<}hsC$S_u%ZWFdplW7rBZP2>lXQGjYHqrnockGJ|tE_)ASozu8}q>tLY%GxBFT z7!;fV2+lCyAYG9$Ba9KeaYhMtf>-3(D=dS;qE)yO%j^7lUdl9244mrn-b{JNgm%s%K_exY6in7}R1*#N5shR- w737)CdA8>QrFD@+mwL!14iG6#jZy*h?l{Hi99F@si5|%9w~I21E&%NZgQ^1!9a^HS9JpI6Fhl^d#Zg zKcFu@`{;u&v8>ffrThW@5Uu z9qom#zr7VY4gD|(zp*#9<45+EQ!_!hZ#(S(doeb_LpRiQ!e%8Mg|SW&nlxrVNr3wU z^RDlj1%La7qe9B;!3U0J8btl4py-pLNQ(UGy& zI7oej9}z=Ud%9*8Jx`1Zc}c0_M*JME>^ct|J2tLoi-i$my+r$a2V~_#zVjW{?vfUW zF`V>kH)dr?GBlMsiAWY#_gCtvahcf}-7zXwRBCZ~j=ybJjkKK*g95SQM>B>DcjuHq1zk3a7e~3S-~bq0J+|>zW;6_djsFm_dt2p0p4r;?a+c zos>0eR}(edSZ9s1OP&)&1S2M~F8x1-=#yBSw%qMFOmxP`g2zKnHCL($=$>PCu87cP z9yL4*CoyiJgcCV@Vqpb0a`@Cj1vhh8wQvi!EqsPM7OGg2<+_D2yhzx;zW@E%jw613c*kg+G#N0M3POfSs^FKVmzO5 zsbIVEos%mz*vh6OxbgDJ+ZO<@@rfMatD51DDgo)a8sI#dSgD3XHrb=7IG&=1 z%~^5opZX2zaT4+pM{xpyU*>4F958`bxKcRH;7k(ybwUdaPyLEa6MdCmkezO#UvT;$ zID?!)|2+MNXc4?IMlmME%X9BlmO)|BDqJng8~i#bmN%bZh^H$fO8Ieg60|l31dI~c&s_SijT(}Pv;o`sL-qH&I literal 0 HcmV?d00001 -- Gitee