Mybatis的案例和接口代理開發和模板配置

Mybatis的簡單入門案例

一、框架的簡介和Mybatis簡介

​ 框架就是一個半成品,在框架的基礎上進行開發可以大大的提高開發效率,減少代碼量。

​ 框架就相當於地基,使用框架開發就相當於在地基上添磚加瓦即可。

​ Dbutils:數據庫工具類

工具類和框架的區別:

​ 工具類:是某種功能的代碼封裝

​ 框架:是對開發某層的深度封裝。

​ 例如:Mybatis是對Dao層的深度封裝

三層架構

​ 爲什麼要使用分層開發?

​ 降低開發難度,提高效率,實現模塊間的解耦。

​ 耦合:模塊間的關聯程度。耦合分高低。

​ 開發追求高耦合、低內聚,降低耦合的過程就叫做解耦

二、Mybatis簡介

​ Mybatis是一個輕量級的DAO層框架。

​ 特點:輕量級、體積小、開發代碼量少

​ Mybatis是基於ORM思想架構的

​ ORM(Object Relationship Mapping):對象數據關係映射.

映射的具體含義:(ORM是雙向映射)

​ 數據庫的一張表 對應一個java類

​ 數據庫的一行記錄對應一個java對象

​ 數據庫的一個字段對應一個java對象的屬性

​ 數據庫的多條記錄對應一個集合對象

三、Mybatis入門案例

ORM思想:

​ SQL語句提取到xml中或者註解,實現解耦,提高生產環境的熱部署,不再使用JDBCAPI,Mybatis對JDBCAPI進行了封裝。

​ 開發步驟:

​ 1.建立普通的maven工程

​ 2.建庫建表

​ 3.編寫java實體類

​ 4.編寫Mybatis的主配置文件:

​ 配置Mybatis的運行環境:

<!-- 引入Mybatis主配置文件的dtd  -->
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 配置mybatis運行環境:
        defalut:當前mybatis的運行環境
      -->
    <environments default="dev">
        <environment id="dev">
            <!--      使用JDBC的事務管理      -->
            <transactionManager type="JDBC"/>
            <!--      配置數據源:
                   POOLED:使用Mybatis默認提供的數據庫連接池
                   -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/gzns"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <!--   加載Mybatis映射文件     -->
    <mappers>
        <mapper resource="com/wpc/mappers/UserMapper.xml"/>
    </mappers>
</configuration>

​ 5.編寫Mybatis的映射文件

​ 一個表對應一個映射文件,封裝對該表的sql操作

<?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">
<!-- namespace:配置statement的命名空間,快速定位statement,對statement進行分組
    注意:使用Mybatis接口映射前,namespace名可以自定義,但
    使用Mybatis接口映射後:namespace=接口的全限定名
 -->
<mapper namespace="com.offcn.userstatements">
    <!--  該statement的ID:namespace.id  -->
   
</mapper>

四、Mybatis的執行原理

1.加載Mybatis主配置文件
InputStream in =Resources.getResourceAsStream("SqlMapConfig.xml");
2.主配置文件中:
<!--   加載Mybatis映射文件     -->
<mappers>
    <mapper resource="com/offcn/mappers/UserMapper.xml"/>
</mappers>
在加載主配置文件的同時會自動加載映射文件
3.調用MybatisAPI完成操作:
List<User> list =
        sqlSession.selectList("statementID");
通過statementID找到要執行的SQL,發送給數據庫
4.拿到數據庫的執行結果,根據resultType/resultMap,把ResultSet自動封裝爲相應的JavaBean;
5.sql傳參數要注意:
5.1如果parameterType="單個基本數據類型/String"#{任意}
5.2如果parameterType="自定義的java類/map"#{對象屬性名/map的key} #{屬性名}:通過調用相應的getter方法獲取其值
注意:
5.2#{必須和對象的屬性名一致}

五、通過IDEA創建Mybatis模板工具

在這裏插入圖片描述

2.創建MybatisUtil模板類:任意工程都可以使用

在這裏插入圖片描述

3.創建Mybatis測試基類

在這裏插入圖片描述

4.創建Mybati主配置文件模板
在這裏插入圖片描述
5.創建Mybatis映射文件模板:

在這裏插入圖片描述

六、Mybatis接口代理開發DAO

使用Mybatis之前進行DAO層開發都需要編寫接口實現類,但Mybatis通過接口代理可以自動爲我們生產接口對應的實現類:
使用Mybatis無需再編寫Mybatis實現類

1.建立普通Maven工程
2.編寫Mybatis主配置文件
3.編寫實體類
4.編寫接口
5.編寫接口映射文件:
編譯映射文件時:路徑要使用/.在resource文件中只是一個普通字符
該映射文件必須和接口對應:
namespace=接口的全限定名;
statement的ID=接口中的方法名;
parameterType=接口中的方法參數類型;
resultType=接口中的方法返回值類型:
如果返回值爲集合,寫其泛型類型
6.測試:
   6.1引入MybatisUtil和TestBase模板類,爲測試提供簡介
   6.2編寫具體測試代碼
    sqlSession.getMapper(接口的類對象);
		來獲取Mybatis爲我們自動創建的接口實現類對象

的方法參數類型;
resultType=接口中的方法返回值類型:
如果返回值爲集合,寫其泛型類型
6.測試:
6.1引入MybatisUtil和TestBase模板類,爲測試提供簡介
6.2編寫具體測試代碼
sqlSession.getMapper(接口的類對象);
來獲取Mybatis爲我們自動創建的接口實現類對象


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章