Forráskód Böngészése

mybatis练习和动态sql

guyanqing 1 éve
szülő
commit
d5d7107614
25 módosított fájl, 849 hozzáadás és 85 törlés
  1. 6 33
      04maven/maven-jetty-web/.idea/workspace.xml
  2. 110 43
      04maven/mybatis/.idea/workspace.xml
  3. 7 0
      04maven/mybatis/pom.xml
  4. 61 0
      04maven/mybatis/src/main/java/com/sf/entity/Book.java
  5. 67 0
      04maven/mybatis/src/main/java/com/sf/mapper/BookMapper.java
  6. 41 0
      04maven/mybatis/src/main/java/com/sf/mapper/UserMapper2.java
  7. 83 0
      04maven/mybatis/src/main/resources/BookMapper.xml
  8. 25 1
      04maven/mybatis/src/main/resources/UserMapper.xml
  9. 3 0
      04maven/mybatis/src/main/resources/db.properties
  10. 8 0
      04maven/mybatis/src/main/resources/log4j.properties
  11. 27 3
      04maven/mybatis/src/main/resources/mybatis-config.xml
  12. 99 1
      04maven/mybatis/src/test/java/com/sf/AppTest.java
  13. 133 0
      04maven/mybatis/src/test/java/com/sf/mapper/BookMapperTest.java
  14. 33 0
      04maven/mybatis/src/test/java/com/sf/mapper/UserMapper2Test.java
  15. 83 0
      04maven/mybatis/target/classes/BookMapper.xml
  16. 25 1
      04maven/mybatis/target/classes/UserMapper.xml
  17. BIN
      04maven/mybatis/target/classes/com/sf/entity/Book.class
  18. BIN
      04maven/mybatis/target/classes/com/sf/mapper/BookMapper.class
  19. BIN
      04maven/mybatis/target/classes/com/sf/mapper/UserMapper2.class
  20. 3 0
      04maven/mybatis/target/classes/db.properties
  21. 8 0
      04maven/mybatis/target/classes/log4j.properties
  22. 27 3
      04maven/mybatis/target/classes/mybatis-config.xml
  23. BIN
      04maven/mybatis/target/test-classes/com/sf/AppTest.class
  24. BIN
      04maven/mybatis/target/test-classes/com/sf/mapper/BookMapperTest.class
  25. BIN
      04maven/mybatis/target/test-classes/com/sf/mapper/UserMapper2Test.class

+ 6 - 33
04maven/maven-jetty-web/.idea/workspace.xml

@@ -10,39 +10,12 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="ede000e7-a29f-4de8-af7d-f03bb6764988" name="Changes" comment="">
-      <change afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/jarRepositories.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/maven-jetty-web.iml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/web.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/webapp/index.jsp" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/target/maven-jetty-web.war" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/target/maven-jetty-web/META-INF/MANIFEST.MF" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/target/maven-jetty-web/WEB-INF/web.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/target/maven-jetty-web/index.jsp" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-parent/.idea/workspace.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/.idea/compiler.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/.idea/encodings.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/.idea/jarRepositories.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/.idea/misc.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/.idea/uiDesigner.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/.idea/vcs.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/.idea/workspace.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/pom.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/src/main/java/com/sf/entity/User.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/src/main/java/com/sf/mapper/UserMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/src/main/resources/UserMapper.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/src/main/resources/mybatis-config.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/src/readme.txt" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../mybatis/src/test/java/com/sf/AppTest.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../maven-parent2/maven01/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../maven-parent2/maven01/pom.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../maven-parent2/maven01/src/test/java/com/sf/AppTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/../maven-parent2/maven01/src/test/java/com/sf/AppTest.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../maven-parent2/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../maven-parent2/pom.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../maven0715/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../maven0715/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../mybatis/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../mybatis/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../mybatis/src/main/resources/mybatis-config.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../mybatis/src/main/resources/mybatis-config.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../mybatis/src/test/java/com/sf/AppTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/../mybatis/src/test/java/com/sf/AppTest.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../mybatis/target/classes/mybatis-config.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../mybatis/target/classes/mybatis-config.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../mybatis/target/test-classes/com/sf/AppTest.class" beforeDir="false" afterPath="$PROJECT_DIR$/../mybatis/target/test-classes/com/sf/AppTest.class" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />

+ 110 - 43
04maven/mybatis/.idea/workspace.xml

@@ -5,39 +5,23 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="ce9a7213-3ec1-4f41-8ade-c4d87d022933" name="Changes" comment="">
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/.idea/compiler.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/.idea/encodings.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/.idea/jarRepositories.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/.idea/misc.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/.idea/vcs.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/.idea/workspace.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/maven-jetty-web.iml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/pom.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/src/main/webapp/WEB-INF/web.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/src/main/webapp/index.jsp" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/target/maven-jetty-web.war" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/target/maven-jetty-web/META-INF/MANIFEST.MF" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/target/maven-jetty-web/WEB-INF/web.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-jetty-web/target/maven-jetty-web/index.jsp" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../maven-parent/.idea/workspace.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/jarRepositories.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/uiDesigner.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/sf/entity/User.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/sf/mapper/UserMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/resources/UserMapper.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/resources/mybatis-config.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/readme.txt" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/test/java/com/sf/AppTest.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../maven-parent2/maven01/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../maven-parent2/maven01/pom.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../maven-parent2/maven01/src/test/java/com/sf/AppTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/../maven-parent2/maven01/src/test/java/com/sf/AppTest.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../maven-parent2/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../maven-parent2/pom.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../maven0715/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../maven0715/.idea/workspace.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sf/entity/Book.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sf/mapper/BookMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sf/mapper/UserMapper2.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/BookMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/db.properties" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/log4j.properties" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/test/java/com/sf/mapper/BookMapperTest.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/test/java/com/sf/mapper/UserMapper2Test.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../maven-jetty-web/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../maven-jetty-web/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/UserMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/UserMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mybatis-config.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mybatis-config.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/test/java/com/sf/AppTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/com/sf/AppTest.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/UserMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/UserMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/mybatis-config.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mybatis-config.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/test-classes/com/sf/AppTest.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/com/sf/AppTest.class" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -48,6 +32,8 @@
     <option name="RECENT_TEMPLATES">
       <list>
         <option value="Class" />
+        <option value="Interface" />
+        <option value="JUnit4 Test Class" />
       </list>
     </option>
   </component>
@@ -58,7 +44,9 @@
     <option name="stateVersion" value="1" />
   </component>
   <component name="ProjectId" id="2Sdvl6dEPtOBliYK2navp87Flvm" />
-  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true">
+    <ConfirmationsSetting value="2" id="Add" />
+  </component>
   <component name="ProjectViewState">
     <option name="showLibraryContents" value="true" />
   </component>
@@ -68,6 +56,8 @@
     "RunOnceActivity.ShowReadmeOnStart": "true",
     "SHARE_PROJECT_CONFIGURATION_FILES": "true",
     "WebServerToolWindowFactoryState": "false",
+    "com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrary": "JUnit4",
+    "com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrarySuperClass.JUnit4": "",
     "node.js.detected.package.eslint": "true",
     "node.js.detected.package.tslint": "true",
     "node.js.selected.package.eslint": "(autodetect)",
@@ -75,22 +65,94 @@
     "project.structure.last.edited": "Modules",
     "project.structure.proportion": "0.0",
     "project.structure.side.proportion": "0.0",
-    "settings.editor.selected.configurable": "preferences.pluginManager",
+    "settings.editor.selected.configurable": "MavenSettings",
     "vue.rearranger.settings.migration": "true"
   }
 }]]></component>
-  <component name="RunManager">
-    <configuration name="AppTest.test01" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+  <component name="RecentsManager">
+    <key name="CreateTestDialog.Recents.Supers">
+      <recent name="" />
+    </key>
+    <key name="CreateTestDialog.RecentsKey">
+      <recent name="com.sf.mapper" />
+    </key>
+  </component>
+  <component name="RunManager" selected="JUnit.BookMapperTest.getBookListWithIdorNameOrPrice3">
+    <configuration name="BookMapperTest.getBookInfo" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="mybatis" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.sf.mapper.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="PACKAGE_NAME" value="com.sf.mapper" />
+      <option name="MAIN_CLASS_NAME" value="com.sf.mapper.BookMapperTest" />
+      <option name="METHOD_NAME" value="getBookInfo" />
+      <option name="TEST_OBJECT" value="method" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="BookMapperTest.getBookListWithIdorNameOrPrice" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="mybatis" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.sf.mapper.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="PACKAGE_NAME" value="com.sf.mapper" />
+      <option name="MAIN_CLASS_NAME" value="com.sf.mapper.BookMapperTest" />
+      <option name="METHOD_NAME" value="getBookListWithIdorNameOrPrice" />
+      <option name="TEST_OBJECT" value="method" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="BookMapperTest.getBookListWithIdorNameOrPrice2" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="mybatis" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.sf.mapper.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="PACKAGE_NAME" value="com.sf.mapper" />
+      <option name="MAIN_CLASS_NAME" value="com.sf.mapper.BookMapperTest" />
+      <option name="METHOD_NAME" value="getBookListWithIdorNameOrPrice2" />
+      <option name="TEST_OBJECT" value="method" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="BookMapperTest.getBookListWithIdorNameOrPrice3" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="mybatis" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.sf.mapper.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="PACKAGE_NAME" value="com.sf.mapper" />
+      <option name="MAIN_CLASS_NAME" value="com.sf.mapper.BookMapperTest" />
+      <option name="METHOD_NAME" value="getBookListWithIdorNameOrPrice3" />
+      <option name="TEST_OBJECT" value="method" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="BookMapperTest.updateBook" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
       <module name="mybatis" />
       <extension name="coverage">
         <pattern>
-          <option name="PATTERN" value="com.sf.*" />
+          <option name="PATTERN" value="com.sf.mapper.*" />
           <option name="ENABLED" value="true" />
         </pattern>
       </extension>
-      <option name="PACKAGE_NAME" value="com.sf" />
-      <option name="MAIN_CLASS_NAME" value="com.sf.AppTest" />
-      <option name="METHOD_NAME" value="test01" />
+      <option name="PACKAGE_NAME" value="com.sf.mapper" />
+      <option name="MAIN_CLASS_NAME" value="com.sf.mapper.BookMapperTest" />
+      <option name="METHOD_NAME" value="updateBook" />
       <option name="TEST_OBJECT" value="method" />
       <method v="2">
         <option name="Make" enabled="true" />
@@ -98,7 +160,11 @@
     </configuration>
     <recent_temporary>
       <list>
-        <item itemvalue="JUnit.AppTest.test01" />
+        <item itemvalue="JUnit.BookMapperTest.getBookListWithIdorNameOrPrice3" />
+        <item itemvalue="JUnit.BookMapperTest.updateBook" />
+        <item itemvalue="JUnit.BookMapperTest.getBookListWithIdorNameOrPrice2" />
+        <item itemvalue="JUnit.BookMapperTest.getBookListWithIdorNameOrPrice" />
+        <item itemvalue="JUnit.BookMapperTest.getBookInfo" />
       </list>
     </recent_temporary>
   </component>
@@ -110,7 +176,8 @@
       <option name="number" value="Default" />
       <option name="presentableId" value="Default" />
       <updated>1689489421847</updated>
-      <workItem from="1689489423797" duration="7249000" />
+      <workItem from="1689489423797" duration="8067000" />
+      <workItem from="1689584772400" duration="20918000" />
     </task>
     <servers />
   </component>

+ 7 - 0
04maven/mybatis/pom.xml

@@ -41,6 +41,13 @@
       <version>5.1.29</version>
     </dependency>
 
+<!--SLF4J+ Log4j的经典组合 日志的了依赖-->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <version>1.7.21</version>
+    </dependency>
+
   </dependencies>
 
   <build>

+ 61 - 0
04maven/mybatis/src/main/java/com/sf/entity/Book.java

@@ -0,0 +1,61 @@
+package com.sf.entity;
+
+/**
+ * 映射数据库表的实体类  Book
+ */
+public class Book {
+    /**
+     * 图书Id
+     */
+    private Integer bookId;
+    /**
+     * 图书名称
+     */
+    private String bookName;
+    /**
+     * 图书的价格
+     */
+    private String price;
+
+    public Book() {
+    }
+
+    public Book(Integer bookId, String bookName, String price) {
+        this.bookId = bookId;
+        this.bookName = bookName;
+        this.price = price;
+    }
+
+    public Integer getBookId() {
+        return bookId;
+    }
+
+    public void setBookId(Integer bookId) {
+        this.bookId = bookId;
+    }
+
+    public String getBookName() {
+        return bookName;
+    }
+
+    public void setBookName(String bookName) {
+        this.bookName = bookName;
+    }
+
+    public String getPrice() {
+        return price;
+    }
+
+    public void setPrice(String price) {
+        this.price = price;
+    }
+
+    @Override
+    public String toString() {
+        return "Book{" +
+                "bookId=" + bookId +
+                ", bookName='" + bookName + '\'' +
+                ", price='" + price + '\'' +
+                '}';
+    }
+}

+ 67 - 0
04maven/mybatis/src/main/java/com/sf/mapper/BookMapper.java

@@ -0,0 +1,67 @@
+package com.sf.mapper;
+
+import com.sf.entity.Book;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BookMapper {
+    /**
+     * 添加图书
+     */
+    void addBook(Book book);
+
+    /**
+     * 修改图书
+     */
+    void updateBook(Book book);
+
+    /**
+     * 删除图书-根据bookId进行删除
+     */
+
+    void deleteBook(Integer bookId);
+
+    /**
+     * 查询图书列表
+     */
+    List<Book> getBookList();
+
+    /**
+     * 根据图书id  查询图书的详情
+     */
+
+    Book getBookInfo(Integer bookId);
+
+    /**
+     * 删除多个图书
+     */
+    void deleteBooks(List<Integer> bookIds);
+
+    /**
+     * 多条件查询
+     * 查询图书的列表      根据id查询
+     *                  根据名称进行查询
+     *                  根据图书的价格进行查询
+     *          @Param("bookId")  Integer bookId   注解   根据参数的名称进行查询
+     *          否则,不加注解 (Integer bookId)  根据数据类型进行匹配
+     */
+    List<Book> getBookListWithIdorNameOrPrice(@Param("bookId") Integer bookId, @Param("bookName") String bookName , @Param("price") String price);
+
+    List<Book> getBookListWithIdorNameOrPrice2(Book book);
+
+
+
+    /**
+     * 修改图书
+     */
+    void updateBook2(Book book);
+
+
+    /**
+     * 查询图书  choose (when, otherwise)
+     */
+
+    List<Book> getBookListWithIdorNameOrPrice3(Book book);
+
+}

+ 41 - 0
04maven/mybatis/src/main/java/com/sf/mapper/UserMapper2.java

@@ -0,0 +1,41 @@
+package com.sf.mapper;
+
+import com.sf.entity.User;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+public interface UserMapper2 {
+    /**
+     * 添加用户
+     * @param user
+     */
+    @Insert("insert into user (user_id,user_name,create_time) values (#{userId},#{userName},#{createTime})")
+    void   addUser(User user);
+
+    /**
+     * 更新用户
+     */
+    @Update("update user set user_name=#{userName},create_time=#{createTime} where user_id = #{userId}")
+    void  updateUser(User user);
+
+    /**
+     * 删除用户根据userId
+     */
+    @Delete("")
+    void deleteUser(Integer userId);
+
+    /**
+     * 查询用户的列表
+     */
+    List<User> getUserList();
+
+    /**
+     * 根据用户的id查询的详情
+     */
+
+    User getUserInfo(Integer userId);
+}

+ 83 - 0
04maven/mybatis/src/main/resources/BookMapper.xml

@@ -0,0 +1,83 @@
+<?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.sf.mapper.BookMapper">
+
+
+<!--    添加图书-->
+    <insert id="addBook" parameterType="book">
+        insert into book (book_id , book_name , price) values (#{bookId},#{bookName},#{price})
+    </insert>
+
+<!--    更新图书-->
+
+    <update id="updateBook" parameterType="book">
+        update book set book_name = #{bookName} , price = #{price} where book_id = #{bookId}
+    </update>
+
+<!--    删除图书-->
+    <delete id="deleteBook" parameterType="integer">
+        delete from  book where book_id = #{bookId}
+    </delete>
+
+<!--    查询图书列表-->
+
+    <select id="getBookList" resultType="book">
+        select * from book
+    </select>
+
+<!--查询图书详情根据图书的id-->
+<select id="getBookInfo" resultType="book">
+    select * from book where book_id = #{bookId}
+</select>
+
+
+    <select id="getBookListWithIdorNameOrPrice" resultType="book">
+        select * from book where price = #{price} and book_name=#{bookName}
+    </select>
+
+<!-- <if test="bookId != null">
+      and  book_id = #{bookId}
+     </if>
+     <if>标签:作为条件判断
+     test="bookId != null"  : 是判断入参中的bookId 是否为空
+                                如果不等于空 就拼接查询条件
+                                等于空,就不拼接查询条件
+     <where>标签去除and和or  帮助我们解决多条件查询sql条件拼接问题
+     -->
+    <select id="getBookListWithIdorNameOrPrice2" parameterType="book" resultType="book">
+        select * from book <where>
+        <if test="bookId != null">
+            and  book_id = #{bookId}
+        </if>
+        <if test="bookName != null">
+            and  book_name=#{bookName}
+        </if>
+        <if test="price != null">
+            and  price = #{price}
+        </if>
+        </where>
+    </select>
+
+    <update id="updateBook2" parameterType="book">
+        update book <set>
+        <if test="bookName != null">book_name = #{bookName} , </if>
+        <if test="price != null">price = #{price} </if>
+    </set>
+     where book_id = #{bookId}
+    </update>
+
+
+    <select id="getBookListWithIdorNameOrPrice3" parameterType="book" resultType="book">
+        select  *  from   book  where
+        <choose>
+            <when test="bookName != null">book_name = #{bookName}</when>
+            <when test="price != null">price = #{price}</when>
+          <otherwise>
+              book_id = #{bookId}
+          </otherwise>
+        </choose>
+
+    </select>
+</mapper>

+ 25 - 1
04maven/mybatis/src/main/resources/UserMapper.xml

@@ -15,10 +15,34 @@ userMapper.xml文件中    insert into user (user_id,user_name,create_time) valu
 #{xxx}:ognl表达式,引用类型 :通过表达式去获取入参中的属性值。
                    基本数据类型:直接获取的是入参值
 -->
-    <insert id="addUser" parameterType="com.sf.entity.User">
+    <insert id="addUser" parameterType="user">
         insert into user (user_id,user_name,create_time) values (#{userId},#{userName},#{createTime})
     </insert>
 
+    <update id="updateUser" parameterType="user">
+        update user set user_name=#{userName},create_time=#{createTime} where user_id = #{userId}
+    </update>
+
+<!--    删除用户根据用户的id-->
+
+    <delete id="deleteUser" parameterType="integer">
+        delete from user where user_id = #{userId}
+    </delete>
+
+
+<!--    查询列表
+id:查询列表的方法名称
+resultType : 方法的返回值类型
+select user_id , user_name ,create_time from user
+-->
+    <select id="getUserList" resultType="user">
+        select user_id  , user_name ,create_time from user
+    </select>
+
+<!--    根据用户的id查询详情-->
+    <select id="getUserInfo" resultType="user" parameterType="integer">
+        select user_id  , user_name ,create_time from user where user_id = #{userId}
+    </select>
 
 
 </mapper>

+ 3 - 0
04maven/mybatis/src/main/resources/db.properties

@@ -0,0 +1,3 @@
+jdbc_user=root
+jdbc_password=root
+jdbc_url=jdbc:mysql://127.0.0.1:3306/mybatis2?characterEncoding=utf-8

+ 8 - 0
04maven/mybatis/src/main/resources/log4j.properties

@@ -0,0 +1,8 @@
+# ???????
+log4j.appender.Console=org.apache.log4j.ConsoleAppender
+# ?????????,???????
+log4j.appender.Console.layout=org.apache.log4j.PatternLayout
+# ?????????
+log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
+# ?????????????,??????????,??????????appender?Console?A????
+log4j.rootLogger=DEBUG,Console

+ 27 - 3
04maven/mybatis/src/main/resources/mybatis-config.xml

@@ -3,20 +3,44 @@
         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
         "https://mybatis.org/dtd/mybatis-3-config.dtd">
 <configuration>
+<!--引入外部资源
+properties   通过这个标签去加载外部资源
+resource:db.properties  去指定我们外部资源文件
+${xxxx}:去获取外部资源文件中的属性值
+-->
+    <properties resource="db.properties"></properties>
+    <settings>
+        <!--        开启驼峰命名-->
+        <setting name="mapUnderscoreToCamelCase" value="true"/>
+
+    </settings>
+
+    <typeAliases>
+        <typeAlias type="com.sf.entity.User" alias="user"></typeAlias>
+        <typeAlias type="com.sf.entity.Book" alias="book"></typeAlias>
+    </typeAliases>
+
+
     <environments default="development">
         <environment id="development">
             <transactionManager type="JDBC"/>
             <dataSource type="POOLED">
 <!--                连接数据库的基本信息-->
                 <property name="driver" value="com.mysql.jdbc.Driver"/>
-                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis2?characterEncoding=utf-8"/>
-                <property name="username" value="root"/>
-                <property name="password" value="root"/>
+                <property name="url" value="${jdbc_url}"/>
+                <property name="username" value="${jdbc_user}"/>
+                <property name="password" value="${jdbc_password}"/>
             </dataSource>
         </environment>
     </environments>
 
     <mappers>
+<!--        通过resource属性去加载.xml文件-->
         <mapper resource="UserMapper.xml"/>
+<!--        通过注解的方式去操作数据库-->
+        <mapper class="com.sf.mapper.UserMapper2"></mapper>
+        <mapper resource="BookMapper.xml"></mapper>
+
+
     </mappers>
 </configuration>

+ 99 - 1
04maven/mybatis/src/test/java/com/sf/AppTest.java

@@ -10,9 +10,11 @@ import org.apache.ibatis.session.SqlSessionFactory;
 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 import org.junit.Test;
 
+import javax.xml.crypto.Data;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Date;
+import java.util.List;
 
 /**
  * Unit test for simple App.
@@ -36,7 +38,7 @@ public class AppTest {
 //        通过qlSession.getMapper()方法去获取我们的接口
         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
         User user = new User();
-        user.setUserId(1001);
+        user.setUserId(1003);
         user.setUserName("lilei");
         user.setCreateTime(new Date());
 //        调用我们接口中的添加方法
@@ -47,4 +49,100 @@ public class AppTest {
         sqlSession.close();
         inputStream.close();
     }
+
+    @Test
+    public void test02() throws IOException {
+        //加载我们mybatis的核心配置文件
+        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
+//        通过SqlSessionFactoryBuilder()中的build()方法去构建SqlSessionFactory
+        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
+//        获取连接
+        SqlSession sqlSession = sessionFactory.openSession();
+//        通过反射获取接口
+        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
+        User user = new User();
+        user.setUserId(1001);
+        user.setUserName("韩梅梅1111");
+        user.setCreateTime(new Date());
+//        调用接口里面的方法
+        userMapper.updateUser(user);
+//        数据提交
+        sqlSession.commit();
+//        资源关闭
+        sqlSession.close();
+        inputStream.close();
+    }
+
+
+    /**
+     * 删除用户  test
+     */
+
+    @Test
+    public void test03() throws IOException {
+        //加载我们mybatis的核心配置文件
+        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
+//        通过SqlSessionFactoryBuilder()中的build()方法去构建SqlSessionFactory
+        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
+//        获取连接
+        SqlSession sqlSession = sessionFactory.openSession();
+//        通过反射获取接口
+        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
+//        调用删除用户方法
+        userMapper.deleteUser(1003);
+//        数据提交
+        sqlSession.commit();
+//        资源关闭
+        sqlSession.close();
+        inputStream.close();
+    }
+
+    /**
+     * 查询用户的列表
+     * @throws IOException
+     */
+    @Test
+    public void test04() throws IOException {
+        //加载我们mybatis的核心配置文件
+        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
+//        通过SqlSessionFactoryBuilder()中的build()方法去构建SqlSessionFactory
+        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
+//        获取连接
+        SqlSession sqlSession = sessionFactory.openSession();
+//        通过反射获取接口
+        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
+//        调用删除用户方法
+        List<User> userList = userMapper.getUserList();
+        System.out.println("userList=====>"+userList);
+//        数据提交
+        sqlSession.commit();
+//        资源关闭
+        sqlSession.close();
+        inputStream.close();
+    }
+
+
+    /**
+     * 根据用户的id查询用户详情
+     */
+    @Test
+    public void test05() throws IOException {
+        //加载我们mybatis的核心配置文件
+        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
+//        通过SqlSessionFactoryBuilder()中的build()方法去构建SqlSessionFactory
+        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
+//        获取连接
+        SqlSession sqlSession = sessionFactory.openSession();
+//        通过反射获取接口
+        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
+//        调用删除用户方法
+        User userInfo = userMapper.getUserInfo(1002);
+        System.out.println(userInfo);
+//        数据提交
+        sqlSession.commit();
+//        资源关闭
+        sqlSession.close();
+        inputStream.close();
+    }
+
 }

+ 133 - 0
04maven/mybatis/src/test/java/com/sf/mapper/BookMapperTest.java

@@ -0,0 +1,133 @@
+package com.sf.mapper;
+
+import com.sf.entity.Book;
+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.Test;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+import static org.junit.Assert.*;
+
+public class BookMapperTest {
+
+    @Test
+    public void addBook() throws IOException {
+        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
+        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
+        SqlSession sqlSession = sqlSessionFactory.openSession();
+        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
+        Book book = new Book();
+        book.setBookId(1002);
+        book.setBookName("水浒传");
+        book.setPrice("100.12");
+        bookMapper.addBook(book);
+        sqlSession.commit();
+        sqlSession.close();
+        in.close();
+    }
+
+    @Test
+    public void updateBook() throws IOException {
+
+        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
+        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
+        SqlSession sqlSession = sqlSessionFactory.openSession();
+        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
+        Book book = new Book();
+        book.setBookId(1001);
+        book.setPrice("97");
+        bookMapper.updateBook2(book);
+        sqlSession.commit();
+        sqlSession.close();
+        in.close();
+    }
+
+    @Test
+    public void deleteBook() throws IOException {
+
+    }
+
+    @Test
+    public void getBookList() throws IOException {
+        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
+        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
+        SqlSession sqlSession = sqlSessionFactory.openSession();
+        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
+        List<Book> bookList = bookMapper.getBookList();
+        System.out.println("booklist====================>"+bookList);
+        sqlSession.commit();
+        sqlSession.close();
+        in.close();
+    }
+
+    @Test
+    public void getBookInfo() throws IOException {
+
+        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
+        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
+        SqlSession sqlSession = sqlSessionFactory.openSession();
+        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
+        Book bookInfo = bookMapper.getBookInfo(1002);
+        System.out.println(bookInfo);
+        sqlSession.commit();
+        sqlSession.close();
+        in.close();
+    }
+
+    @Test
+    public void deleteBooks() {
+    }
+
+    @Test
+    public void getBookListWithIdorNameOrPrice() throws IOException {
+        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
+        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
+        SqlSession sqlSession = sqlSessionFactory.openSession();
+        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
+        List<Book> info = bookMapper.getBookListWithIdorNameOrPrice(1001, "水浒传", "122");
+        System.out.println(info);
+        sqlSession.commit();
+        sqlSession.close();
+        in.close();
+
+
+    }
+
+    @Test
+    public void getBookListWithIdorNameOrPrice2() throws IOException {
+        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
+        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
+        SqlSession sqlSession = sqlSessionFactory.openSession();
+        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
+        Book book = new Book();
+        book.setPrice("122");
+        List<Book> info = bookMapper.getBookListWithIdorNameOrPrice2(book);
+        System.out.println(info);
+        sqlSession.commit();
+        sqlSession.close();
+        in.close();
+    }
+
+    @Test
+    public void getBookListWithIdorNameOrPrice3() throws IOException {
+        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
+        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
+        SqlSession sqlSession = sqlSessionFactory.openSession();
+        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
+        Book book = new Book();
+        book.setBookName("水浒传");
+        book.setPrice("122");
+        List<Book> info = bookMapper.getBookListWithIdorNameOrPrice3(book);
+        System.out.println(info);
+        sqlSession.commit();
+        sqlSession.close();
+        in.close();
+    }
+
+
+}

+ 33 - 0
04maven/mybatis/src/test/java/com/sf/mapper/UserMapper2Test.java

@@ -0,0 +1,33 @@
+package com.sf.mapper;
+
+import com.sf.entity.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.Test;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+
+import static org.junit.Assert.*;
+
+public class UserMapper2Test {
+
+    @Test
+    public void addUser() throws IOException {
+        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
+        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
+        SqlSession sqlSession = sqlSessionFactory.openSession();
+        UserMapper2 mapper = sqlSession.getMapper(UserMapper2.class);
+        User user = new User();
+        user.setUserId(1004);
+        user.setUserName("李磊1");
+        user.setCreateTime(new Date());
+        mapper.addUser(user);
+        sqlSession.commit();
+        sqlSession.close();
+        inputStream.close();
+    }
+}

+ 83 - 0
04maven/mybatis/target/classes/BookMapper.xml

@@ -0,0 +1,83 @@
+<?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.sf.mapper.BookMapper">
+
+
+<!--    添加图书-->
+    <insert id="addBook" parameterType="book">
+        insert into book (book_id , book_name , price) values (#{bookId},#{bookName},#{price})
+    </insert>
+
+<!--    更新图书-->
+
+    <update id="updateBook" parameterType="book">
+        update book set book_name = #{bookName} , price = #{price} where book_id = #{bookId}
+    </update>
+
+<!--    删除图书-->
+    <delete id="deleteBook" parameterType="integer">
+        delete from  book where book_id = #{bookId}
+    </delete>
+
+<!--    查询图书列表-->
+
+    <select id="getBookList" resultType="book">
+        select * from book
+    </select>
+
+<!--查询图书详情根据图书的id-->
+<select id="getBookInfo" resultType="book">
+    select * from book where book_id = #{bookId}
+</select>
+
+
+    <select id="getBookListWithIdorNameOrPrice" resultType="book">
+        select * from book where price = #{price} and book_name=#{bookName}
+    </select>
+
+<!-- <if test="bookId != null">
+      and  book_id = #{bookId}
+     </if>
+     <if>标签:作为条件判断
+     test="bookId != null"  : 是判断入参中的bookId 是否为空
+                                如果不等于空 就拼接查询条件
+                                等于空,就不拼接查询条件
+     <where>标签去除and和or  帮助我们解决多条件查询sql条件拼接问题
+     -->
+    <select id="getBookListWithIdorNameOrPrice2" parameterType="book" resultType="book">
+        select * from book <where>
+        <if test="bookId != null">
+            and  book_id = #{bookId}
+        </if>
+        <if test="bookName != null">
+            and  book_name=#{bookName}
+        </if>
+        <if test="price != null">
+            and  price = #{price}
+        </if>
+        </where>
+    </select>
+
+    <update id="updateBook2" parameterType="book">
+        update book <set>
+        <if test="bookName != null">book_name = #{bookName} , </if>
+        <if test="price != null">price = #{price} </if>
+    </set>
+     where book_id = #{bookId}
+    </update>
+
+
+    <select id="getBookListWithIdorNameOrPrice3" parameterType="book" resultType="book">
+        select  *  from   book  where
+        <choose>
+            <when test="bookName != null">book_name = #{bookName}</when>
+            <when test="price != null">price = #{price}</when>
+          <otherwise>
+              book_id = #{bookId}
+          </otherwise>
+        </choose>
+
+    </select>
+</mapper>

+ 25 - 1
04maven/mybatis/target/classes/UserMapper.xml

@@ -15,10 +15,34 @@ userMapper.xml文件中    insert into user (user_id,user_name,create_time) valu
 #{xxx}:ognl表达式,引用类型 :通过表达式去获取入参中的属性值。
                    基本数据类型:直接获取的是入参值
 -->
-    <insert id="addUser" parameterType="com.sf.entity.User">
+    <insert id="addUser" parameterType="user">
         insert into user (user_id,user_name,create_time) values (#{userId},#{userName},#{createTime})
     </insert>
 
+    <update id="updateUser" parameterType="user">
+        update user set user_name=#{userName},create_time=#{createTime} where user_id = #{userId}
+    </update>
+
+<!--    删除用户根据用户的id-->
+
+    <delete id="deleteUser" parameterType="integer">
+        delete from user where user_id = #{userId}
+    </delete>
+
+
+<!--    查询列表
+id:查询列表的方法名称
+resultType : 方法的返回值类型
+select user_id , user_name ,create_time from user
+-->
+    <select id="getUserList" resultType="user">
+        select user_id  , user_name ,create_time from user
+    </select>
+
+<!--    根据用户的id查询详情-->
+    <select id="getUserInfo" resultType="user" parameterType="integer">
+        select user_id  , user_name ,create_time from user where user_id = #{userId}
+    </select>
 
 
 </mapper>

BIN
04maven/mybatis/target/classes/com/sf/entity/Book.class


BIN
04maven/mybatis/target/classes/com/sf/mapper/BookMapper.class


BIN
04maven/mybatis/target/classes/com/sf/mapper/UserMapper2.class


+ 3 - 0
04maven/mybatis/target/classes/db.properties

@@ -0,0 +1,3 @@
+jdbc_user=root
+jdbc_password=root
+jdbc_url=jdbc:mysql://127.0.0.1:3306/mybatis2?characterEncoding=utf-8

+ 8 - 0
04maven/mybatis/target/classes/log4j.properties

@@ -0,0 +1,8 @@
+# ???????
+log4j.appender.Console=org.apache.log4j.ConsoleAppender
+# ?????????,???????
+log4j.appender.Console.layout=org.apache.log4j.PatternLayout
+# ?????????
+log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
+# ?????????????,??????????,??????????appender?Console?A????
+log4j.rootLogger=DEBUG,Console

+ 27 - 3
04maven/mybatis/target/classes/mybatis-config.xml

@@ -3,20 +3,44 @@
         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
         "https://mybatis.org/dtd/mybatis-3-config.dtd">
 <configuration>
+<!--引入外部资源
+properties   通过这个标签去加载外部资源
+resource:db.properties  去指定我们外部资源文件
+${xxxx}:去获取外部资源文件中的属性值
+-->
+    <properties resource="db.properties"></properties>
+    <settings>
+        <!--        开启驼峰命名-->
+        <setting name="mapUnderscoreToCamelCase" value="true"/>
+
+    </settings>
+
+    <typeAliases>
+        <typeAlias type="com.sf.entity.User" alias="user"></typeAlias>
+        <typeAlias type="com.sf.entity.Book" alias="book"></typeAlias>
+    </typeAliases>
+
+
     <environments default="development">
         <environment id="development">
             <transactionManager type="JDBC"/>
             <dataSource type="POOLED">
 <!--                连接数据库的基本信息-->
                 <property name="driver" value="com.mysql.jdbc.Driver"/>
-                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis2?characterEncoding=utf-8"/>
-                <property name="username" value="root"/>
-                <property name="password" value="root"/>
+                <property name="url" value="${jdbc_url}"/>
+                <property name="username" value="${jdbc_user}"/>
+                <property name="password" value="${jdbc_password}"/>
             </dataSource>
         </environment>
     </environments>
 
     <mappers>
+<!--        通过resource属性去加载.xml文件-->
         <mapper resource="UserMapper.xml"/>
+<!--        通过注解的方式去操作数据库-->
+        <mapper class="com.sf.mapper.UserMapper2"></mapper>
+        <mapper resource="BookMapper.xml"></mapper>
+
+
     </mappers>
 </configuration>

BIN
04maven/mybatis/target/test-classes/com/sf/AppTest.class


BIN
04maven/mybatis/target/test-classes/com/sf/mapper/BookMapperTest.class


BIN
04maven/mybatis/target/test-classes/com/sf/mapper/UserMapper2Test.class