diff --git "a/09 \346\233\271\346\255\243\346\263\242/20231219 Maven.md" "b/09 \346\233\271\346\255\243\346\263\242/20231219 Maven.md"
new file mode 100644
index 0000000000000000000000000000000000000000..d58dbfc53c5950c1599fd3c2e6b5ef361f62e2f3
--- /dev/null
+++ "b/09 \346\233\271\346\255\243\346\263\242/20231219 Maven.md"
@@ -0,0 +1,50 @@
+# 笔记
+
+项目名称
+
+ --pom.xml 核心配置,项目根下
+
+ --src
+
+ --main
+
+--java java源码目录
+
+ --resources java配置文件目录
+
+ --test
+
+--java 源码测试目录
+
+--resource 测试配置目录
+
+**7.1 compile** compile是maven工程的编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target 目录下。 **7.2 test** test是maven工程的测试命令,会执行 src/test/java 下的单元测试类。 cmd 执行 mvn test 执行 src/test/java 下单元测试类,下图为测试结果,运行 1 个测试用例,全部成功。 **7.3 clean** clean是maven工程的清理命令,执行clean会删除target目录及其内容 **7.4 package** package是maven工程的打包命令,对于java工程执行 package 打成 jar 包,对于 web 工程打成 war 包。 **7.5 install** install 是 maven 工程的安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。 从运行结果中,可以看出:当后面的命令执行时,前面的操作过程也都会自动执行
+
+### maven的生命周期
+
+maven对项目构建过程分为三套相互独立的生命周期,这里说的三套而且是相互独立, 这三套分别是: Clean Lifecycle :在进行真正的构建之前进行一些清理工作。 Default Lifecycle :构建的核心部分,编译,测试,打包,部署等等。 Site Lifecycle :生成项目报告,站点,发布站点。
+
+# 作业
+
+```java
+import org.junit.Test;
+
+public class Tap {
+ @Test
+ public void i(){
+ System.out.println(111);
+ }
+}
+```
+
+```java
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+```
+
diff --git "a/09 \346\233\271\346\255\243\346\263\242/20231220 Mybatis.md" "b/09 \346\233\271\346\255\243\346\263\242/20231220 Mybatis.md"
new file mode 100644
index 0000000000000000000000000000000000000000..6c9bf252a884f9fc82779bc10166d116148c790f
--- /dev/null
+++ "b/09 \346\233\271\346\255\243\346\263\242/20231220 Mybatis.md"
@@ -0,0 +1,247 @@
+# 笔记
+
+### **1.** 创建user表,添加数据
+
+```mysql
+create database mybatis;
+use mybatis;
+drop table if exists tb_user;
+create table tb_user(
+id int primary key auto_increment,
+username varchar(20),
+password varchar(20),
+gender char(1),
+addr varchar(30)
+);
+INSERT INTO tb_user VALUES (1, '张三', '123', '男', '北京');
+INSERT INTO tb_user VALUES (2, '李四', '234', '女', '天津');
+INSERT INTO tb_user VALUES (3, '王五', '11', '男', '西安');
+```
+
+### **2.** 创建模块根据数据表,编写对应的java类
+
+在 com.mdd.pojo 包下创建 User类
+
+```java
+public class User {private int id;private String username;private String password;private String gender;private String addr;//省略了 setter 和 getter}
+```
+
+### 3.导入坐标
+
+```java
+
+
+4. 编写 MyBatis 核心配置文件 -- > 替换连接信息
+ 在模块下的 resources 目录下创建mybatis的配置文件 mybatis-config.xml ,内容
+如下:
+
+org.mybatis
+mybatis
+3.5.5
+
+
+
+com.mysql
+mysql-connector-j
+8.1.0
+
+
+
+junit
+junit
+4.13
+test
+
+
+```
+
+### **4.** **编写** **MyBatis** **核心配置文件** **-- >** 替换连接信息
+
+ 在模块下的 resources 目录下创建mybatis的配置文件 mybatis-config.xml ,内容
+
+如下:
+
+```java
+
+
+
+
+
+
+
+
+
+
+
+5. 编写 SQL 映射文件 --> 统一管理sql语句
+在模块的 resources 目录下创建映射配置文件 UserMapper.xml ,内容如下:
+6. 编写测试类
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### **5.** **编写** **SQL** **映射文件** **-->** 统一管理sql语句
+
+在模块的 resources 目录下创建映射配置文件 UserMapper.xml ,内容如下:
+
+```java
+
+
+
+
+
+```
+
+### **6.** 编写测试类
+
+```java
+@Test
+public static test01() {
+//1. 加载mybatis的核心配置文件,获取 SqlSessionFactory
+String resource = "mybatis-config.xml";
+InputStream inputStream =
+Resources.getResourceAsStream(resource);
+SqlSessionFactory sqlSessionFactory = new
+SqlSessionFactoryBuilder().build(inputStream);
+//2. 获取SqlSession对象,用它来执行sql
+SqlSession sqlSession = sqlSessionFactory.openSession();
+//3. 执行sql
+List users = sqlSession.selectList("test.selectAll"); //
+参数是一个字符串,该字符串必须是映射配置文件的namespace.id
+System.out.println(users);
+//4. 释放资源
+sqlSession.close();
+}
+```
+
+
+
+# 作业
+
+```java
+package com.okk;
+
+import com.okk.pojo.User;
+import org.apache.ibatis.io.Resources;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.ibatis.session.SqlSessionFactoryBuilder;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+public class App {
+ public static void main(String[] args) throws IOException {
+// 1 加载mybatis的核心配置文件
+ String resource = "mybatis-config.xml";
+ InputStream inputStream = Resources.getResourceAsStream(resource);
+ SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
+
+ // 2. 创建sqlSession对象。用来执行SQL语句
+ SqlSession sqlSession = sqlSessionFactory.openSession();
+
+ // 3 执行SQL语句
+ User o = sqlSession.selectOne("test.selectById", 3);
+ List list = sqlSession.selectList("test.selectAll");// namespace.id
+ System.out.println(list);
+
+ User user= sqlSession.selectOne("test.selectById", 9);
+ System.out.println(user);
+ // 4 释放资源
+ sqlSession.close();
+ }
+}
+```
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```xml
+
+
+
+
+
+
+
+
+ insert into tb_user (username, age, gender) VALUES (#{username}, #{age}, #{gender})
+
+
+
+
+ delete from tb_user where id = #{id}
+
+
+
+ update tb_user
+ set username = #{username},
+ age = #{age},
+ gender =#{gender}
+ where id = #{id};
+
+
+
+```
+
diff --git "a/09 \346\233\271\346\255\243\346\263\242/20231221 Mybatis\347\254\254\344\272\214\347\211\210.md" "b/09 \346\233\271\346\255\243\346\263\242/20231221 Mybatis\347\254\254\344\272\214\347\211\210.md"
new file mode 100644
index 0000000000000000000000000000000000000000..da54fc7b029fd733186f0566d6777dded1bac868
--- /dev/null
+++ "b/09 \346\233\271\346\255\243\346\263\242/20231221 Mybatis\347\254\254\344\272\214\347\211\210.md"
@@ -0,0 +1,335 @@
+# 笔记
+
+```java
+使用Mapper代理方式,必须满足以下要求:
+1.定义与SQL映射文件同名的Mapper接口,
+2.在 Mapper 接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持
+参数类型和返回值类型一致
+namespace:名称空间。必须是对应接口的全限定名 >
+
+