<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      MyBatis概論及配置說明

      一、什么是mybatis?

      MyBatis 是一款優秀的半自動的ORM持久層框架,它支持自定義 SQL、存儲過程以及高級映射。

      MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數和獲取結果集的工作。

      MyBatis 可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 對象)為數據庫中的記錄

      二、MyBaits與JDBC

      JDBC核心對象

      DriverManager,數據庫驅動管理對象
      Connection,數據庫連接對象
      Statement | PrepareStatement ,操作數據庫SQL語句對象
      ResultSet,結果集對象

      MyBaits核心對象

      SqlSession對象,該對象包含了執行SQL語句的所有方法,例如JDBC里面Connection

      Executor接口,將傳遞過來的參數動態生成SQL語句,負責查詢緩存。

      MappedStatement對象,該對象負責對SQL封裝,用于存儲需要映射的SQL語句及參數等信息

      ResultHandler對象,用戶返回結果集合,封裝成最紅想要的數據類型,可以自定義返回類型

      三、MyBaits執行流程

       依賴: 

           //mybatis依賴配置
          implementation 'org.mybatis:mybatis:3.5.15'
          //MySQL連接驅動
          implementation 'com.mysql:mysql-connector-j:8.2.0
      mybatis核心組件:
      ①SqlSessionFactoryBuilder:構建SqlSessionFactory的構建器,采用了分布構建方式進行構建
      ②SqlSessionFactory:生產SqlSession的工廠(工廠設計模式),在項目的生命周期應該以單例的形式進行存在
      ③SqlSession:mybatis圍繞SqlSession進行工作,
      提供:發送執行sql語句;
         獲取mapper映射器;
      控制事務

      ④mapper映射器:接口+映射文件(注解或者xml)xml常用

      注意:在xml中&是特殊符號,有具體的語義,要使用&amp;表示連接


      mybatis不支持方法重載
      因為MyBatis動態代理尋找策略是:全限定名+方法名,不涉及參數,所以MyBatis不支持方法重載。
      方法重載:方法名相同,參數列表不同

      配置文件:mybatis-config.xml
      <?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核心配置文件-->
      <configuration>
          <!--通過 properties文件進行配置datasource數據源-->
          <properties resource="datasource.properties"/>
          <!--settings:會改變mybatis的運行時行為
          logImpl:指定mybatis所有日志的具體實現,未指定時將自動查找
          mapUnderscoreToCamelCase:駝峰映射
          autoMapperBehavior:指定mybatis應如何自動映射列到字段或屬性
          (NONE:關閉自動映射;PARTIAL只會自動映射沒有定義嵌套結果映射的字段;FULL會自動映射任何)
          .....
          -->
          <settings>
          <!-- 開啟駝峰映射 默認是關閉的-->
              <setting name="mapUnderscoreToCamelCase" value="true"/>
          </settings>
          <!--類型別名:不區分大小寫-->
          <typeAliases>
              <!-- 針對類型單獨進行別名配置-->
              <typeAlias type="com.monster.pojo.Student" alias="student"/>
              <!-- 位于指定包下指定別名,別名即為類的簡單名稱(mybatis 的別名不區分大小寫)-->
              <package name="com.monster.pojo"/>
          </typeAliases>
      
          <!--類型處理器:處理Java對象屬性和數據表字段類型不一致的類型轉換
          BooleanTypeHandler
          FloatTypeHandler
          BigDecimalTypeHandler
          EnumTypeHandler: 數據庫兼容的字節流類型【VARCHAR 或任何兼容的字符串類型,用來存儲枚舉的名稱(而不是索引序數值)】
          .....等等
          -->
          <typeHandlers>
              <!-- 單獨加載 自定義類型轉換處理器-->
      <!--        <typeHandler handler="com.monster.typehandler.GenderTypeHandler"-->
      <!--                     javaType="com.monster.enums.Gender"/>-->
              <!-- mybatis自帶的類型轉換器(這兒是枚舉轉換器)-->
              <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler"
                           javaType="com.monster.enums.Gender"/>
      
              <!--包加載-->
              <!-- <package name="com.monster.typehandler"/>-->
      
          </typeHandlers>
          <!--  自定義對象工廠:當創建結果集的時候,mybatis會使用一個對象工廠創建這個結果集的實例,然后實現里面的方法  -->
          <objectFactory type="com.monster.factory.MyObjectFactory"/>
          
         <!-- 插件(plugins):允許你在映射語句執行過程中的某一點進行攔截調用。

          -->
          <!-- 環境配置 -->
          <environments default="development">
              <environment id="development">
                  <!-- 事務管理器(需要實現Transaction接口)
                  JDBC:采用JdbcTransaction生成的JdbcTransaction對象實現,以JDBC的方式對數據庫的事務進行操作
                  MANAGED:采用ManagedTnansaction生成的WanagedTransaction對象實現。它的提交和回滾不需要任何操作,而是把事務交給容器處理。
                  在默認情況下會自動關閉連接,然而容器并不希望這樣做,因此需要將closeConnection屬性設置為false來阻止它默認的關閉行為
                  -->
                  <transactionManager type="JDBC"/>
      
                  <!-- 數據源環境
                      POOLED:連接池
                      UNPOOLED:非連接池的方式創建連接
                      JNDI:在外部(容器)配置數據源
                   -->
                  <dataSource type="POOLED">
                      <!-- 連接驅動-->
                      <property name="driver" value="${driverClassName}"/>
                      <!-- 在xml中&是特殊符號,有具體的語義,要使用&amp表示連接-->
                      <property name="url" value="jdbc:mysql://localhost:3306/studentmanage?userUnicode=true&amp;characterEncoding=UTF8"/>
                      <property name="username" value="longhj"/>
                      <property name="password" value="${password}"/>
                  </dataSource>
              </environment>
          </environments>
      
          <!-- 映射器
          ①類名
          ②包名
          ③注解映射   -->
          <mappers>
          <!--<mapper resource="com/monster/mapper/StudentMapper.xml"/>
          順序:mapper >> package
          -->
              <!--通過注解映射的mapper直接被掃描,不需要通過xml注冊-->
      <!-- 省略:<mapper class="com.monster.mapper.BookMapper"/>-->
              <package name="com/monster/mapper"/>
          </mappers>
      </configuration>


      posted on 2024-03-18 15:48  L0ngyc  閱讀(56)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 国产视色精品亚洲一区二区| 亚洲偷自拍另类一区二区| 欧美国产日产一区二区| 亚洲高清WWW色好看美女| 国产精品白浆无码流出| 国产在线拍偷自揄观看视频网站 | 国产熟女激情一区二区三区| 亚洲欧美国产日韩天堂区| 嫩草成人AV影院在线观看| 日韩精品人妻黄色一级片| 熟妇无码熟妇毛片| 国产精品亚洲专区无码导航| 成人亚洲一级午夜激情网| 熟妇的味道hd中文字幕| 国产不卡一区在线视频| 中文字幕无码av不卡一区| 成人精品自拍视频免费看| 亚洲国产成人久久77| 亚洲精品乱码免费精品乱| 国产精品一二三中文字幕| 久久综合色之久久综合| 色吊丝免费av一区二区| 亚洲国产精品综合久久2007| 图木舒克市| 欧美亚洲h在线一区二区| 色欲久久久天天天综合网精品| 综合激情网一区二区三区| 亚洲国产日韩一区三区| 一本av高清一区二区三区| 男女啪啪高潮激烈免费版 | 精品免费国产一区二区三区四区介绍| 国产馆在线精品极品粉嫩| 国产成人综合色就色综合| 二区中文字幕在线观看| 国产美女深夜福利在线一 | 亚洲欧美人成网站在线观看看| 国产高跟黑色丝袜在线| 国产亚洲999精品aa片在线爽 | 国产福利酱国产一区二区| av无码免费一区二区三区| 国产午夜福利精品视频|