Ver Fonte

mybatis

xerga há 1 ano atrás
pai
commit
1a7132b7eb
29 ficheiros alterados com 1013 adições e 126 exclusões
  1. 3 0
      02_JavaWeb/.idea/compiler.xml
  2. 2 0
      02_JavaWeb/.idea/encodings.xml
  3. 1 0
      02_JavaWeb/.idea/misc.xml
  4. 30 47
      02_JavaWeb/.idea/workspace.xml
  5. 1 0
      02_JavaWeb/day06_mybatis/src/test/java/TestMybatis01.java
  6. BIN
      02_JavaWeb/day06_mybatis/target/test-classes/TestMybatis01.class
  7. 45 0
      02_JavaWeb/day07_mybatis/pom.xml
  8. 30 0
      02_JavaWeb/day07_mybatis/src/main/java/com/lc/mapper/UserMapper.java
  9. 80 0
      02_JavaWeb/day07_mybatis/src/main/java/com/lc/pojo/User.java
  10. 73 0
      02_JavaWeb/day07_mybatis/src/main/resources/com/lc/mapper/UserMapper.xml
  11. 4 0
      02_JavaWeb/day07_mybatis/src/main/resources/jdbc.properties
  12. 22 0
      02_JavaWeb/day07_mybatis/src/main/resources/log4j.xml
  13. 47 0
      02_JavaWeb/day07_mybatis/src/main/resources/mybatis-config.xml
  14. 113 0
      02_JavaWeb/day07_mybatis/src/test/java/TestMybatis01.java
  15. BIN
      02_JavaWeb/day07_mybatis/target/classes/com/lc/mapper/UserMapper.class
  16. 73 0
      02_JavaWeb/day07_mybatis/target/classes/com/lc/mapper/UserMapper.xml
  17. BIN
      02_JavaWeb/day07_mybatis/target/classes/com/lc/pojo/User.class
  18. 4 0
      02_JavaWeb/day07_mybatis/target/classes/jdbc.properties
  19. 22 0
      02_JavaWeb/day07_mybatis/target/classes/log4j.xml
  20. 47 0
      02_JavaWeb/day07_mybatis/target/classes/mybatis-config.xml
  21. BIN
      02_JavaWeb/day07_mybatis/target/test-classes/TestMybatis01.class
  22. 124 0
      maven_test/.idea/uiDesigner.xml
  23. 63 79
      maven_test/.idea/workspace.xml
  24. 34 0
      maven_test/src/test/java/ClientTest.java
  25. 53 0
      maven_test/src/test/java/ServerTest.java
  26. 29 0
      maven_test/src/test/java/refact/Person.java
  27. 37 0
      maven_test/src/test/java/refact/TestPerson.java
  28. 38 0
      maven_test/src/test/java/refact/TestReclact.java
  29. 38 0
      maven_test/src/test/java/refact/TestReclact1.java

+ 3 - 0
02_JavaWeb/.idea/compiler.xml

@@ -6,12 +6,15 @@
         <sourceOutputDir name="target/generated-sources/annotations" />
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
         <outputRelativeToContentRoot value="true" />
+        <module name="day07_mybatis" />
         <module name="day06_mybatis" />
         <module name="day04_maven_jdbc" />
       </profile>
     </annotationProcessing>
     <bytecodeTargetLevel>
       <module name="day04_maven_test" target="1.8" />
+      <module name="day06_mybatis (1)" target="1.8" />
+      <module name="day06_mybatis (2)" target="1.8" />
     </bytecodeTargetLevel>
   </component>
 </project>

+ 2 - 0
02_JavaWeb/.idea/encodings.xml

@@ -9,6 +9,8 @@
     <file url="file://$PROJECT_DIR$/day04_maven_test01/src/main/resources" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/day06_mybatis/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/day06_mybatis/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/day07_mybatis/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/day07_mybatis/src/main/resources" charset="UTF-8" />
     <file url="PROJECT" charset="UTF-8" />
   </component>
 </project>

+ 1 - 0
02_JavaWeb/.idea/misc.xml

@@ -9,6 +9,7 @@
         <option value="$PROJECT_DIR$/day04_maven_test01/pom.xml" />
         <option value="$PROJECT_DIR$/day04_maven_jdbc/pom.xml" />
         <option value="$PROJECT_DIR$/day06_mybatis/pom.xml" />
+        <option value="$PROJECT_DIR$/day07_mybatis/pom.xml" />
       </list>
     </option>
   </component>

+ 30 - 47
02_JavaWeb/.idea/workspace.xml

@@ -5,42 +5,21 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="7222eceb-2db8-407d-9241-ba20a077e1a3" name="Changes" comment="">
-      <change afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/jarRepositories.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day04_maven_jdbc/src/main/java/com/lc/dao/DeptDao.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day04_maven_jdbc/src/main/java/com/lc/pojo/Dept.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day04_maven_jdbc/src/main/resources/druid.properties" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day04_maven_jdbc/src/test/java/TestDept.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day04_maven_jdbc/src/test/java/TestDruid.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day04_maven_jdbc/src/test/java/TestJdbc01.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day06_mybatis/pom.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day06_mybatis/src/main/java/com/lc/mapper/UserMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day06_mybatis/src/main/java/com/lc/pojo/User.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day06_mybatis/src/main/resources/jdbc.properties" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day06_mybatis/src/main/resources/mybatis-config.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day06_mybatis/src/test/java/TestMybatis01.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven_test/src/main/java/com/lc/mybatis/mapper/DeptMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven_test/src/main/java/com/lc/mybatis/mapper/UserMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven_test/src/main/java/com/lc/mybatis/pojo/Dept.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven_test/src/main/java/com/lc/mybatis/pojo/User.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven_test/src/main/resources/druid.properties" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven_test/src/main/resources/log4j.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven_test/src/main/resources/mapper/DeptMapper.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven_test/src/main/resources/mapper/UserMapper.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven_test/src/main/resources/mybatis-config.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven_test/src/test/java/Test01.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven_test/src/test/java/Test02.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven_test/src/test/java/com/lc/mybatis/TestMybatis01.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../01_JavaSe/JavaSe/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../01_JavaSe/JavaSe/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../01_JavaSe/JavaSe/day03/src/com/lc/day03/exer/ExerWhile04.java" beforeDir="false" afterPath="$PROJECT_DIR$/../01_JavaSe/JavaSe/day03/src/com/lc/day03/exer/ExerWhile04.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/dataSources.local.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources.local.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/dataSources.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/dataSources/550a94cd-5a84-4eae-8c42-e64bc8aed117.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/550a94cd-5a84-4eae-8c42-e64bc8aed117.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/dataSources/e1de3f07-12af-4996-b9a0-605a975b8b87.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/e1de3f07-12af-4996-b9a0-605a975b8b87.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day07_mybatis/src/main/resources/log4j.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../maven_test/.idea/uiDesigner.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../maven_test/src/test/java/ClientTest.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../maven_test/src/test/java/ServerTest.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../maven_test/src/test/java/refact/Person.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../maven_test/src/test/java/refact/TestPerson.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../maven_test/src/test/java/refact/TestReclact.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../maven_test/src/test/java/refact/TestReclact1.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/day06_mybatis/src/test/java/TestMybatis01.java" beforeDir="false" afterPath="$PROJECT_DIR$/day06_mybatis/src/test/java/TestMybatis01.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/day06_mybatis/target/test-classes/TestMybatis01.class" beforeDir="false" afterPath="$PROJECT_DIR$/day06_mybatis/target/test-classes/TestMybatis01.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../maven_test/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../maven_test/.idea/workspace.xml" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -61,6 +40,9 @@
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
   </component>
+  <component name="HighlightingSettingsPerFile">
+    <setting file="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.5.6/mybatis-3.5.6-sources.jar!/org/apache/ibatis/session/SqlSessionFactory.java" root0="SKIP_INSPECTION" />
+  </component>
   <component name="ProjectColorInfo">{
   &quot;associatedIndex&quot;: 2
 }</component>
@@ -79,7 +61,7 @@
     "SHARE_PROJECT_CONFIGURATION_FILES": "true",
     "WebServerToolWindowFactoryState": "false",
     "jdk.selected.JAVA_MODULE": "17",
-    "last_opened_file_path": "C:/LoveCoding/VIP-27/code/02_JavaWeb",
+    "last_opened_file_path": "C:/LoveCoding/VIP-27/code/02_JavaWeb/day07_mybatis",
     "node.js.detected.package.eslint": "true",
     "node.js.detected.package.tslint": "true",
     "node.js.selected.package.eslint": "(autodetect)",
@@ -111,29 +93,28 @@
       <recent name="" />
     </key>
   </component>
-  <component name="RunManager" selected="JUnit.TestMybatis01.test01">
-    <configuration name="TestMybatis01.test01" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <module name="day06_mybatis" />
+  <component name="RunManager" selected="JUnit.TestMybatis01.test06">
+    <configuration name="TestMybatis01" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="day07_mybatis" />
       <option name="PACKAGE_NAME" value="" />
       <option name="MAIN_CLASS_NAME" value="TestMybatis01" />
-      <option name="METHOD_NAME" value="test01" />
-      <option name="TEST_OBJECT" value="method" />
+      <option name="TEST_OBJECT" value="class" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
     </configuration>
-    <configuration name="TestMybatis01.test02" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <module name="day06_mybatis" />
+    <configuration name="TestMybatis01.test03" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="day07_mybatis" />
       <option name="PACKAGE_NAME" value="" />
       <option name="MAIN_CLASS_NAME" value="TestMybatis01" />
-      <option name="METHOD_NAME" value="test02" />
+      <option name="METHOD_NAME" value="test03" />
       <option name="TEST_OBJECT" value="method" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
     </configuration>
     <configuration name="TestMybatis01.test04" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <module name="day06_mybatis" />
+      <module name="day07_mybatis" />
       <option name="PACKAGE_NAME" value="" />
       <option name="MAIN_CLASS_NAME" value="TestMybatis01" />
       <option name="METHOD_NAME" value="test04" />
@@ -143,7 +124,7 @@
       </method>
     </configuration>
     <configuration name="TestMybatis01.test05" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <module name="day06_mybatis" />
+      <module name="day07_mybatis" />
       <option name="PACKAGE_NAME" value="" />
       <option name="MAIN_CLASS_NAME" value="TestMybatis01" />
       <option name="METHOD_NAME" value="test05" />
@@ -153,7 +134,7 @@
       </method>
     </configuration>
     <configuration name="TestMybatis01.test06" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <module name="day06_mybatis" />
+      <module name="day07_mybatis" />
       <option name="PACKAGE_NAME" value="" />
       <option name="MAIN_CLASS_NAME" value="TestMybatis01" />
       <option name="METHOD_NAME" value="test06" />
@@ -164,11 +145,11 @@
     </configuration>
     <recent_temporary>
       <list>
-        <item itemvalue="JUnit.TestMybatis01.test01" />
         <item itemvalue="JUnit.TestMybatis01.test06" />
-        <item itemvalue="JUnit.TestMybatis01.test02" />
         <item itemvalue="JUnit.TestMybatis01.test05" />
         <item itemvalue="JUnit.TestMybatis01.test04" />
+        <item itemvalue="JUnit.TestMybatis01" />
+        <item itemvalue="JUnit.TestMybatis01.test03" />
       </list>
     </recent_temporary>
   </component>
@@ -190,6 +171,8 @@
       <workItem from="1693622793276" duration="15731000" />
       <workItem from="1693994530691" duration="6887000" />
       <workItem from="1694217896237" duration="13646000" />
+      <workItem from="1694339109899" duration="606000" />
+      <workItem from="1694599825698" duration="6664000" />
     </task>
     <servers />
   </component>

+ 1 - 0
02_JavaWeb/day06_mybatis/src/test/java/TestMybatis01.java

@@ -142,6 +142,7 @@ public class TestMybatis01 {
         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
         //sqlSession
         SqlSession sqlSession = sqlSessionFactory.openSession();
+
         //接口代理对象
         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
         //调用方法

BIN
02_JavaWeb/day06_mybatis/target/test-classes/TestMybatis01.class


+ 45 - 0
02_JavaWeb/day07_mybatis/pom.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.lc</groupId>
+    <artifactId>day07_mybatis</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <!-- mysql驱动 -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>8.0.26</version>
+        </dependency>
+        <!--导入MyBatis的jar包-->
+        <dependency>
+            <groupId>org.mybatis</groupId>
+            <artifactId>mybatis</artifactId>
+            <version>3.5.6</version>
+        </dependency>
+        <!--junit-->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+            <scope>test</scope>
+        </dependency>
+        <!-- log4j -->
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
+        </dependency>
+    </dependencies>
+
+</project>

+ 30 - 0
02_JavaWeb/day07_mybatis/src/main/java/com/lc/mapper/UserMapper.java

@@ -0,0 +1,30 @@
+package com.lc.mapper;
+
+import com.lc.pojo.User;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * ClassName: UserMapper
+ * Package: com.lc.mapper
+ * Description:
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/9/9 9:53
+ * @Version 1.0
+ */
+public interface UserMapper {
+    public User getUserById(Integer id);
+    public User getUserByNameAndPass(@Param("name") String name ,@Param("pass") String pass);
+    //map key valeu
+    public User getUserByNameAndGender(Map<String,Object> map );
+    public User getUserByNameAndAddress( String name , String address);
+    public List<User> getUserByName( String name );
+    public User getUserByIdResultMap( String id );
+
+
+
+
+}

+ 80 - 0
02_JavaWeb/day07_mybatis/src/main/java/com/lc/pojo/User.java

@@ -0,0 +1,80 @@
+package com.lc.pojo;
+
+/**
+ * ClassName: User
+ * Package: com.lc.pojo
+ * Description:
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/9/9 9:51
+ * @Version 1.0
+ */
+public class User {
+    private Integer id;
+    private String  username;
+    private String  password;
+    private String  gender;
+    private String  address;
+
+    private Integer deptId;
+
+    public Integer getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(Integer deptId) {
+        this.deptId = deptId;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getGender() {
+        return gender;
+    }
+
+    public void setGender(String gender) {
+        this.gender = gender;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    @Override
+    public String toString() {
+        return "User{" +
+                "id=" + id +
+                ", username='" + username + '\'' +
+                ", password='" + password + '\'' +
+                ", gender='" + gender + '\'' +
+                ", address='" + address + '\'' +
+                ", deptId=" + deptId +
+                '}';
+    }
+}

+ 73 - 0
02_JavaWeb/day07_mybatis/src/main/resources/com/lc/mapper/UserMapper.xml

@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lc.mapper.UserMapper">
+    <!-- 单个参数
+        输入参数省略
+        #{id} 取值 可以是任意的
+     -->
+    <select id="getUserById" resultType="user" >
+        select * from t_user where id = #{abc}
+    </select>
+
+    <!-- 多个参数
+        注解 @Param
+        方法中定义的key
+        @Param("name") String name ,@Param("pass") String pass)
+        取值 #{ Param 中 value 属性值 }
+     -->
+    <select id="getUserByNameAndPass" resultType="user" >
+        select * from t_user where username = #{name} and password = #{pass}
+    </select>
+
+
+    <!-- 多个参数
+        Map key value
+
+        使用 #{key}
+     -->
+    <select id="getUserByNameAndGender" resultType="user" >
+        select * from t_user where username = #{name} and gender = #{gender}
+    </select>
+
+    <!--
+        默认
+         key
+            param1  param2
+            arg0    arg1
+     -->
+    <select id="getUserByNameAndAddress" resultType="user" >
+        select * from t_user where username = #{arg0} and address = #{arg1}
+    </select>
+
+
+    <!--
+        #{} 可以对参数 编译 不会出现sql注入问题
+        ${} 直接使用参数 拼接  有sql注入问题  慎用
+
+        特殊情况
+            传入的值 是一张表  或者是一个字段
+     -->
+    <select id="getUserByName" resultType="user" >
+        select * from t_user where username = ${name}
+    </select>
+    
+    <!-- resultmap -->
+    <resultMap id="userByIdResultMap" type="com.lc.pojo.User">
+        <!-- 主键配置 -->
+        <id property="id" column="id"></id>
+
+        <!-- result 其余字段 -->
+        <result property="username" column="username" ></result>
+<!--        <result property="password" column="password" ></result>-->
+<!--        <result property="adderss" column="adderss" ></result>-->
+<!--        <result property="gender" column="gender" ></result>-->
+<!--        <result property="deptId" column="dept_id" ></result>-->
+
+    </resultMap>
+    
+    <select id="getUserByIdResultMap" resultMap="userByIdResultMap">
+        select * from t_user where id =#{id}
+    </select>
+</mapper>

+ 4 - 0
02_JavaWeb/day07_mybatis/src/main/resources/jdbc.properties

@@ -0,0 +1,4 @@
+driver=com.mysql.cj.jdbc.Driver
+url=jdbc:mysql:///db2?serverTimezone=UTC
+username=root
+password=123456

+ 22 - 0
02_JavaWeb/day07_mybatis/src/main/resources/log4j.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
+        <param name="Encoding" value="UTF-8" />
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
+        </layout>
+    </appender>
+    <logger name="java.sql">
+        <level value="debug" />
+    </logger>
+    <logger name="org.apache.ibatis">
+        <level value="info" />
+    </logger>
+    <root>
+        <level value="debug" />
+        <appender-ref ref="STDOUT" />
+    </root>
+</log4j:configuration>

+ 47 - 0
02_JavaWeb/day07_mybatis/src/main/resources/mybatis-config.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration
+        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-config.dtd">
+
+<configuration>
+
+    <!-- properties
+        resource 路径
+     -->
+    <properties resource="jdbc.properties"></properties>
+
+    <!-- setting -->
+    <settings>
+        <!-- 驼峰命名 -->
+        <setting name="mapUnderscoreToCamelCase" value="true"/>
+    </settings>
+
+    <!-- 别名 -->
+    <typeAliases>
+        <!-- name 包名路径 批量设置  取小写 -->
+        <package name="com.lc.pojo"/>
+    </typeAliases>
+
+    <environments default="development">
+        <environment id="development">
+            <transactionManager type="JDBC"/>
+            <dataSource type="POOLED">
+                <!--mysql8版本 -->
+                <property name="driver" value="${driver}"/>
+                <property name="url" value="${url}"/>
+                <property name="username" value="${username}"/>
+                <property name="password" value="${password}"/>
+            </dataSource>
+        </environment>
+    </environments>
+    <!-- 设置映射文件路径-->
+    <mappers>
+        <!--<mapper resource="mapper/UserMapper.xml"/>-->
+        <!--
+            package 配置xml映射文件
+            name 接口位置
+                接口和xml路径相同
+         -->
+        <package name="com.lc.mapper"/>
+    </mappers>
+</configuration>

+ 113 - 0
02_JavaWeb/day07_mybatis/src/test/java/TestMybatis01.java

@@ -0,0 +1,113 @@
+import com.lc.mapper.UserMapper;
+import com.lc.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 org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * ClassName: TestMybatis01
+ * Package: PACKAGE_NAME
+ * Description:
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/9/9 9:58
+ * @Version 1.0
+ */
+public class TestMybatis01 {
+
+    SqlSession sqlSession = null;
+    @Before
+    public void before() throws IOException {
+        //加载配置文件
+        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
+        //SqlSessionFactory
+        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
+        // sqlSession
+        // true 自动提交事务
+        sqlSession = sqlSessionFactory.openSession(true);
+    }
+
+
+    @Test
+    public void test01(){
+        //代理
+        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
+
+        //调用方法
+        User user = mapper.getUserById(1);
+        System.out.println(user);
+    }
+
+    //多参数  注解
+    @Test
+    public void test02(){
+        //代理
+        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
+
+        //调用方法
+        User user = mapper.getUserByNameAndPass("zs","123456");
+        System.out.println(user);
+    }
+
+
+    //map
+    @Test
+    public void test03(){
+        //代理
+        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
+        //参数封装 map
+        Map<String, Object> map = new HashMap<>();
+        map.put("name","zs");
+        map.put("gender","男");
+
+        //调用方法
+        User user = mapper.getUserByNameAndGender(map);
+        System.out.println(user);
+    }
+
+    //map
+    @Test
+    public void test04(){
+        //代理
+        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
+
+        User user = mapper.getUserByNameAndAddress("zs", "北京");
+
+        System.out.println(user);
+    }
+
+    // # $
+    @Test
+    public void test05(){
+        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
+
+        List<User> list = mapper.getUserByName("'zs' or 1 = 1 ");
+
+        //根据 sql 查询所有的值  有sql 漏洞
+
+        list.forEach(System.out::println);
+
+    }
+
+
+    // resultMap
+    @Test
+    public void test06(){
+        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
+
+        User user = mapper.getUserByIdResultMap("1");
+
+        System.out.println(user);
+    }
+
+}

BIN
02_JavaWeb/day07_mybatis/target/classes/com/lc/mapper/UserMapper.class


+ 73 - 0
02_JavaWeb/day07_mybatis/target/classes/com/lc/mapper/UserMapper.xml

@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lc.mapper.UserMapper">
+    <!-- 单个参数
+        输入参数省略
+        #{id} 取值 可以是任意的
+     -->
+    <select id="getUserById" resultType="user" >
+        select * from t_user where id = #{abc}
+    </select>
+
+    <!-- 多个参数
+        注解 @Param
+        方法中定义的key
+        @Param("name") String name ,@Param("pass") String pass)
+        取值 #{ Param 中 value 属性值 }
+     -->
+    <select id="getUserByNameAndPass" resultType="user" >
+        select * from t_user where username = #{name} and password = #{pass}
+    </select>
+
+
+    <!-- 多个参数
+        Map key value
+
+        使用 #{key}
+     -->
+    <select id="getUserByNameAndGender" resultType="user" >
+        select * from t_user where username = #{name} and gender = #{gender}
+    </select>
+
+    <!--
+        默认
+         key
+            param1  param2
+            arg0    arg1
+     -->
+    <select id="getUserByNameAndAddress" resultType="user" >
+        select * from t_user where username = #{arg0} and address = #{arg1}
+    </select>
+
+
+    <!--
+        #{} 可以对参数 编译 不会出现sql注入问题
+        ${} 直接使用参数 拼接  有sql注入问题  慎用
+
+        特殊情况
+            传入的值 是一张表  或者是一个字段
+     -->
+    <select id="getUserByName" resultType="user" >
+        select * from t_user where username = ${name}
+    </select>
+    
+    <!-- resultmap -->
+    <resultMap id="userByIdResultMap" type="com.lc.pojo.User">
+        <!-- 主键配置 -->
+        <id property="id" column="id"></id>
+
+        <!-- result 其余字段 -->
+        <result property="username" column="username" ></result>
+<!--        <result property="password" column="password" ></result>-->
+<!--        <result property="adderss" column="adderss" ></result>-->
+<!--        <result property="gender" column="gender" ></result>-->
+<!--        <result property="deptId" column="dept_id" ></result>-->
+
+    </resultMap>
+    
+    <select id="getUserByIdResultMap" resultMap="userByIdResultMap">
+        select * from t_user where id =#{id}
+    </select>
+</mapper>

BIN
02_JavaWeb/day07_mybatis/target/classes/com/lc/pojo/User.class


+ 4 - 0
02_JavaWeb/day07_mybatis/target/classes/jdbc.properties

@@ -0,0 +1,4 @@
+driver=com.mysql.cj.jdbc.Driver
+url=jdbc:mysql:///db2?serverTimezone=UTC
+username=root
+password=123456

+ 22 - 0
02_JavaWeb/day07_mybatis/target/classes/log4j.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
+        <param name="Encoding" value="UTF-8" />
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
+        </layout>
+    </appender>
+    <logger name="java.sql">
+        <level value="debug" />
+    </logger>
+    <logger name="org.apache.ibatis">
+        <level value="info" />
+    </logger>
+    <root>
+        <level value="debug" />
+        <appender-ref ref="STDOUT" />
+    </root>
+</log4j:configuration>

+ 47 - 0
02_JavaWeb/day07_mybatis/target/classes/mybatis-config.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration
+        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-config.dtd">
+
+<configuration>
+
+    <!-- properties
+        resource 路径
+     -->
+    <properties resource="jdbc.properties"></properties>
+
+    <!-- setting -->
+    <settings>
+        <!-- 驼峰命名 -->
+        <setting name="mapUnderscoreToCamelCase" value="true"/>
+    </settings>
+
+    <!-- 别名 -->
+    <typeAliases>
+        <!-- name 包名路径 批量设置  取小写 -->
+        <package name="com.lc.pojo"/>
+    </typeAliases>
+
+    <environments default="development">
+        <environment id="development">
+            <transactionManager type="JDBC"/>
+            <dataSource type="POOLED">
+                <!--mysql8版本 -->
+                <property name="driver" value="${driver}"/>
+                <property name="url" value="${url}"/>
+                <property name="username" value="${username}"/>
+                <property name="password" value="${password}"/>
+            </dataSource>
+        </environment>
+    </environments>
+    <!-- 设置映射文件路径-->
+    <mappers>
+        <!--<mapper resource="mapper/UserMapper.xml"/>-->
+        <!--
+            package 配置xml映射文件
+            name 接口位置
+                接口和xml路径相同
+         -->
+        <package name="com.lc.mapper"/>
+    </mappers>
+</configuration>

BIN
02_JavaWeb/day07_mybatis/target/test-classes/TestMybatis01.class


+ 124 - 0
maven_test/.idea/uiDesigner.xml

@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>

+ 63 - 79
maven_test/.idea/workspace.xml

@@ -5,42 +5,15 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="c55ade25-e54d-48a0-93d9-70876a2596b5" name="Changes" comment="">
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/.idea/compiler.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/.idea/jarRepositories.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/day04_maven_jdbc/src/main/java/com/lc/dao/DeptDao.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/day04_maven_jdbc/src/main/java/com/lc/pojo/Dept.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/day04_maven_jdbc/src/main/resources/druid.properties" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/day04_maven_jdbc/src/test/java/TestDept.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/day04_maven_jdbc/src/test/java/TestDruid.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/day04_maven_jdbc/src/test/java/TestJdbc01.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/day06_mybatis/pom.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/day06_mybatis/src/main/java/com/lc/mapper/UserMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/day06_mybatis/src/main/java/com/lc/pojo/User.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/day06_mybatis/src/main/resources/jdbc.properties" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/day06_mybatis/src/main/resources/mybatis-config.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../02_JavaWeb/day06_mybatis/src/test/java/TestMybatis01.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/lc/mybatis/mapper/DeptMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/lc/mybatis/mapper/UserMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/lc/mybatis/pojo/Dept.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/lc/mybatis/pojo/User.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/resources/druid.properties" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/resources/log4j.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/DeptMapper.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/UserMapper.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/resources/mybatis-config.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/test/java/Test01.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/test/java/Test02.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/test/java/com/lc/mybatis/TestMybatis01.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../01_JavaSe/JavaSe/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../01_JavaSe/JavaSe/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../01_JavaSe/JavaSe/day03/src/com/lc/day03/exer/ExerWhile04.java" beforeDir="false" afterPath="$PROJECT_DIR$/../01_JavaSe/JavaSe/day03/src/com/lc/day03/exer/ExerWhile04.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../02_JavaWeb/.idea/dataSources.local.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../02_JavaWeb/.idea/dataSources.local.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../02_JavaWeb/.idea/dataSources.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../02_JavaWeb/.idea/dataSources.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../02_JavaWeb/.idea/dataSources/550a94cd-5a84-4eae-8c42-e64bc8aed117.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../02_JavaWeb/.idea/dataSources/550a94cd-5a84-4eae-8c42-e64bc8aed117.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../02_JavaWeb/.idea/dataSources/e1de3f07-12af-4996-b9a0-605a975b8b87.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../02_JavaWeb/.idea/dataSources/e1de3f07-12af-4996-b9a0-605a975b8b87.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../02_JavaWeb/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../02_JavaWeb/.idea/encodings.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../02_JavaWeb/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../02_JavaWeb/.idea/misc.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../02_JavaWeb/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../02_JavaWeb/.idea/modules.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/uiDesigner.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/test/java/ClientTest.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/test/java/ServerTest.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/test/java/refact/Person.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/test/java/refact/TestPerson.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/test/java/refact/TestReclact.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/test/java/refact/TestReclact1.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../02_JavaWeb/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../02_JavaWeb/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -62,6 +35,9 @@
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
   </component>
+  <component name="MarkdownSettingsMigration">
+    <option name="stateVersion" value="1" />
+  </component>
   <component name="MavenImportPreferences">
     <option name="generalSettings">
       <MavenGeneralSettings>
@@ -80,32 +56,36 @@
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <component name="PropertiesComponent">{
-  &quot;keyToString&quot;: {
-    &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
-    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
-    &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
-    &quot;last_opened_file_path&quot;: &quot;C:/LoveCoding/VIP-27/code/maven_test/src/main/resources/mapper&quot;,
-    &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
-    &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
-    &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
-    &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
-    &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
-    &quot;project.structure.last.edited&quot;: &quot;SDKs&quot;,
-    &quot;project.structure.proportion&quot;: &quot;0.0&quot;,
-    &quot;project.structure.side.proportion&quot;: &quot;0.0&quot;,
-    &quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;,
-    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
+  <component name="PropertiesComponent"><![CDATA[{
+  "keyToString": {
+    "RunOnceActivity.OpenProjectViewOnStart": "true",
+    "RunOnceActivity.ShowReadmeOnStart": "true",
+    "SHARE_PROJECT_CONFIGURATION_FILES": "true",
+    "WebServerToolWindowFactoryState": "false",
+    "last_opened_file_path": "C:/LoveCoding/VIP-27/code/maven_test",
+    "node.js.detected.package.eslint": "true",
+    "node.js.detected.package.tslint": "true",
+    "node.js.selected.package.eslint": "(autodetect)",
+    "node.js.selected.package.tslint": "(autodetect)",
+    "nodejs_package_manager_path": "npm",
+    "project.structure.last.edited": "SDKs",
+    "project.structure.proportion": "0.0",
+    "project.structure.side.proportion": "0.0",
+    "settings.editor.selected.configurable": "preferences.pluginManager",
+    "vue.rearranger.settings.migration": "true"
   }
-}</component>
+}]]></component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
       <recent name="C:\LoveCoding\VIP-27\code\maven_test\src\main\resources\mapper" />
     </key>
     <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
+      <recent name="" />
       <recent name="com.lc.mybatis" />
     </key>
     <key name="CopyClassDialog.RECENTS_KEY">
+      <recent name="refact" />
+      <recent name="" />
       <recent name="com.lc.mybatis" />
     </key>
   </component>
@@ -114,75 +94,67 @@
       <command value="mvn clean" />
     </option>
   </component>
-  <component name="RunManager" selected="Application.Test02">
-    <configuration name="Test01" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
-      <option name="MAIN_CLASS_NAME" value="Test01" />
+  <component name="RunManager" selected="Application.TestReclact1">
+    <configuration name="ClientTest" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+      <option name="MAIN_CLASS_NAME" value="ClientTest" />
       <module name="maven_test" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
     </configuration>
-    <configuration name="Test02" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
-      <option name="MAIN_CLASS_NAME" value="Test02" />
+    <configuration name="ServerTest" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+      <option name="MAIN_CLASS_NAME" value="ServerTest" />
       <module name="maven_test" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
     </configuration>
-    <configuration name="TestMybatis01" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+    <configuration name="TestPerson" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+      <option name="MAIN_CLASS_NAME" value="refact.TestPerson" />
       <module name="maven_test" />
       <extension name="coverage">
         <pattern>
-          <option name="PATTERN" value="com.lc.mybatis.*" />
+          <option name="PATTERN" value="refact.*" />
           <option name="ENABLED" value="true" />
         </pattern>
       </extension>
-      <option name="PACKAGE_NAME" value="com.lc.mybatis" />
-      <option name="MAIN_CLASS_NAME" value="com.lc.mybatis.TestMybatis01" />
-      <option name="TEST_OBJECT" value="class" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
     </configuration>
-    <configuration name="TestMybatis01.test01" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+    <configuration name="TestReclact" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+      <option name="MAIN_CLASS_NAME" value="refact.TestReclact" />
       <module name="maven_test" />
       <extension name="coverage">
         <pattern>
-          <option name="PATTERN" value="com.lc.mybatis.*" />
+          <option name="PATTERN" value="refact.*" />
           <option name="ENABLED" value="true" />
         </pattern>
       </extension>
-      <option name="PACKAGE_NAME" value="com.lc.mybatis" />
-      <option name="MAIN_CLASS_NAME" value="com.lc.mybatis.TestMybatis01" />
-      <option name="METHOD_NAME" value="test01" />
-      <option name="TEST_OBJECT" value="method" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
     </configuration>
-    <configuration name="TestMybatis01.test02" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+    <configuration name="TestReclact1" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+      <option name="MAIN_CLASS_NAME" value="refact.TestReclact1" />
       <module name="maven_test" />
       <extension name="coverage">
         <pattern>
-          <option name="PATTERN" value="com.lc.mybatis.*" />
+          <option name="PATTERN" value="refact.*" />
           <option name="ENABLED" value="true" />
         </pattern>
       </extension>
-      <option name="PACKAGE_NAME" value="com.lc.mybatis" />
-      <option name="MAIN_CLASS_NAME" value="com.lc.mybatis.TestMybatis01" />
-      <option name="METHOD_NAME" value="test02" />
-      <option name="TEST_OBJECT" value="method" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
     </configuration>
     <recent_temporary>
       <list>
-        <item itemvalue="Application.Test02" />
-        <item itemvalue="Application.Test01" />
-        <item itemvalue="JUnit.TestMybatis01.test01" />
-        <item itemvalue="JUnit.TestMybatis01" />
-        <item itemvalue="JUnit.TestMybatis01.test02" />
+        <item itemvalue="Application.TestReclact1" />
+        <item itemvalue="Application.TestPerson" />
+        <item itemvalue="Application.TestReclact" />
+        <item itemvalue="Application.ClientTest" />
+        <item itemvalue="Application.ServerTest" />
       </list>
     </recent_temporary>
   </component>
@@ -207,12 +179,24 @@
       <workItem from="1694151424298" duration="75000" />
       <workItem from="1694156317120" duration="5035000" />
       <workItem from="1694307239504" duration="15000" />
+      <workItem from="1694339140213" duration="6461000" />
     </task>
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="3" />
   </component>
+  <component name="Vcs.Log.Tabs.Properties">
+    <option name="TAB_STATES">
+      <map>
+        <entry key="MAIN">
+          <value>
+            <State />
+          </value>
+        </entry>
+      </map>
+    </option>
+  </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
       <breakpoints>

+ 34 - 0
maven_test/src/test/java/ClientTest.java

@@ -0,0 +1,34 @@
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.Socket;
+
+/**
+ * ClassName: ClientTest
+ * Package: com.lc.mybatis
+ * Description:
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/9/10 17:56
+ * @Version 1.0
+ */
+public class ClientTest {
+
+    public static void main(String[] args) throws IOException {
+
+        //客户端
+        Socket socket = new Socket("192.168.18.32",8899);
+
+        System.out.println("连接");
+        //发送
+        OutputStream os = socket.getOutputStream();
+        byte[] bytes = "hello 你好".getBytes();
+        os.write(bytes);
+
+        System.out.println("发送数据");
+
+        socket.close();
+
+    }
+}

+ 53 - 0
maven_test/src/test/java/ServerTest.java

@@ -0,0 +1,53 @@
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ * ClassName: Test02
+ * Package: PACKAGE_NAME
+ * Description:
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/9/8 16:37
+ * @Version 1.0
+ */
+public class ServerTest {
+
+    /*
+        网络编程
+            服务端
+                ServetSocket 端口
+                接收数据
+            客户端
+                Scoket  IP 端口
+
+                发送数据
+            数据传输
+     */
+    public static void main(String[] args) throws IOException {
+
+        ServerSocket serverSocket = new ServerSocket(8899);
+
+        System.out.println("服务启动成功");
+        System.out.println("等待连接");
+        //没有客户端连接 等待
+        Socket accept = serverSocket.accept();
+
+        System.out.println("连接成功");
+
+        //接收数据
+        InputStream is = accept.getInputStream();
+
+        byte[] bs = new byte[1024];
+        int len = is.read(bs);
+        //字符串
+        String str = new String(bs, 0, len);
+
+        System.out.println("客户端数据:"+str);
+
+
+        accept.close();
+        serverSocket.close();
+    }
+}

+ 29 - 0
maven_test/src/test/java/refact/Person.java

@@ -0,0 +1,29 @@
+package refact;
+
+/**
+ * ClassName: Person
+ * Package: refact
+ * Description:
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/9/11 15:26
+ * @Version 1.0
+ */
+public class Person {
+    public String name;
+    private Integer age;
+
+    public void sayHello(){
+        System.out.println(" -----hello------");
+    }
+
+    public String sayHello(String str){
+        System.out.println("----hello:"+str+"-----");
+        return str;
+    }
+
+    public static void main(String[] args) {
+        int a = 10;
+        System.out.println(a);
+    }
+}

+ 37 - 0
maven_test/src/test/java/refact/TestPerson.java

@@ -0,0 +1,37 @@
+package refact;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+
+/**
+ * ClassName: TestPerson
+ * Package: refact
+ * Description:
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/9/11 15:33
+ * @Version 1.0
+ */
+public class TestPerson {
+    public static void main(String[] args) {
+        //获取class 对象
+        //类名.class
+        Class<Person> pClass = Person.class;
+
+        //获取非私有的字段
+        Field[] fields = pClass.getFields();
+        System.out.println(Arrays.toString(fields));
+
+        //获取所有的字段
+        Field[] declaredFields = pClass.getDeclaredFields();
+        System.out.println(Arrays.toString(declaredFields));
+
+        //方法
+        Method[] declaredMethods = pClass.getDeclaredMethods();
+        System.out.println(Arrays.toString(declaredMethods));
+
+
+
+    }
+}

+ 38 - 0
maven_test/src/test/java/refact/TestReclact.java

@@ -0,0 +1,38 @@
+package refact;
+
+
+import java.lang.reflect.Field;
+
+/**
+ * ClassName: Testreclact
+ * Package: refact
+ * Description:
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/9/11 15:50
+ * @Version 1.0
+ */
+public class TestReclact {
+
+    //获取属性 设置值
+    public static void main(String[] args) throws Exception {
+        //类
+        Class<Person> personClass = Person.class;
+
+        //获取对象
+        Person person = personClass.newInstance();
+
+        //获取字段
+        Field name = personClass.getDeclaredField("name");
+
+        //如果是私有设置可操作
+        name.setAccessible(true);
+
+        //注入值
+        name.set(person,"tom");
+
+        //person name是否 是 tom
+        System.out.println("反射注入name:"+ person.name);
+
+    }
+}

+ 38 - 0
maven_test/src/test/java/refact/TestReclact1.java

@@ -0,0 +1,38 @@
+package refact;
+
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+/**
+ * ClassName: Testreclact
+ * Package: refact
+ * Description:
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/9/11 15:50
+ * @Version 1.0
+ */
+public class TestReclact1 {
+
+    //反射操作方法
+    public static void main(String[] args) throws Exception {
+        //class
+        Class<Person> personClass = Person.class;
+        //对象
+        Person person = personClass.newInstance();
+        //获取方法 无参数 无返回值的方法
+        Method method1 = personClass.getDeclaredMethod("sayHello");
+        //执行方法
+        // obj 当前对象  args 调用方法需要的参数
+        // Object obj, Object... args
+        Object invoke = method1.invoke(person);
+        System.out.println(invoke);
+        //获取方法 无参数 无返回值的方法
+        Method method2 = personClass.getDeclaredMethod("sayHello",String.class);
+        //执行方法
+        Object tom = method2.invoke(person, "tom");
+        System.out.println(tom);
+        //servelt 通过返回获取方法执行
+    }
+}