国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Mybatis的mapper標簽 namespace屬性用法說明

Mybatis的mapper標簽 namespace屬性用法說明

2022-01-24 12:46hugh Lee Java教程

這篇文章主要介紹了Mybatis的mapper標簽 namespace屬性用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Mybatis mapper標簽namespace屬性說明

在mybatis中,映射文件中的namespace是用于綁定Dao接口的,即面向接口編程。

當你的namespace綁定接口后,你可以不用寫接口實現類,mybatis會通過該綁定自動幫你找到對應要執行的SQL語句,如下:

假設定義了IArticeDAO接口

?
1
2
3
4
public interface IArticleDAO
{
   List<Article> selectAllArticle();
}

對于映射文件如下:

?
1
2
3
4
<mapper namespace="IArticleDAO">
    <select id="selectAllArticle" resultType="article">
            SELECT t.* FROM T_article t WHERE t.flag = '1' ORDER BY t.createtime DESC
     </select>

請注意接口中的方法與映射文件中的SQL語句的ID一一對應 。

則在代碼中可以直接使用IArticeDAO面向接口編程而不需要再編寫實現類。

MyBatis的命名空間(我們以下圖的文件結構來說明)

Mybatis的mapper標簽 namespace屬性用法說明

MyBatis的命名空間說的是POJO的XXx.xml文件中的<mapper namespace=”” />,主要是跟三個地方有關系,

  • 第一個是Configuration.xml的mappers屬性
  • 第二個是POJO的mapper接口如EmployeeMapper的類路徑
  • 第三個是DAO程序中的session.getConfiguration().addMapper(EmployeeMapper.class)

下面我來說一下他們三個之間的關系,我們

1)當只使用XML(不使用Anotation)的來配置mapper接口時

就是我們把sql配置在EmployeeMap.xml中時,若我們把namespace指明namespace設置為mapper接口的路徑,即<mapper namespace="com.wildrain.mapper.EmployeeMapper">時,這樣我們在程序中使用MyBatis來進行CRUD時, session.getConfiguration().addMapper(EmployeeMapper.class)這段代碼可以不用寫。我們來具體看一下這個三個地方的代碼形式。

?
1
2
3
4
Configuration.xml的mappers
<typeAliases>
       <typeAlias alias="Employee" type="com.wildrain.domain.Employee" />
    </typeAliases>
?
1
2
Namespace
<mapper namespace="com.wildrain.mapper.EmployeeMapper">

程序代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    @Test
    public void testGetAllEmployees(){
       SqlSessionFactory sqlSessionFactory =  MyBatisUtil.getSessionFactory();
       SqlSession session = sqlSessionFactory.openSession();
       try {
           EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
           List<Employee> ems = mapper.getAllEmployees();
           for(Employee e:ems){
              System.out.println(e);
           }
       } finally {
           session.close();
       }
}

若我們在employee.xml中的namespace是任意取的名字,而不是EmployeeMapper.java的類路徑名,那么當我們在進行測試時,必須要添加一行代碼session.getConfiguration().addMapper(EmployeeMapper.class)進行注冊,下代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Test
    public void testGetAllEmployees(){
       SqlSessionFactory sqlSessionFactory =  MyBatisUtil.getSessionFactory();
       SqlSession session = sqlSessionFactory.openSession();
       session.getConfiguration().addMapper(EmployeeMapper.class);
       try {
           EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
           List<Employee> ems = mapper.getAllEmployees();
           for(Employee e:ems){
              System.out.println(e);
           }
       } finally {
           session.close();
       }
}

2)當使用注解時

為了減少配制xml的工作量,可以把Employee.xml省略,而把相應配制通過注解的形式寫到EmployeeMapper.java的文件中,如下所示

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
final String getAllEmployees = "SELECT E.id, name, type, salay, time "+
       "FROM employee E "+
       "left join register r on r.eid = E.id "+
    "left join time t on t.eid = E.id";
@Select(getAllEmployees)
    @TypeDiscriminator(column = "type",
           cases={  
           @Case(value="1",type=RegisterEmployee.class,results={
              @Result(property="salay")
           }) ,
           @Case(value="2",type=TimeEmployee.class,results={
              @Result(property="time")
           })
})

這樣Configuration.xml中就不需要設置<mappers/>了,此時在測試程序時就必須加一行

?
1
session.getConfiguration().addMapper(EmployeeMapper.class);

的代碼進行注冊,這樣在每一次CRUD時都需要添加一行這樣的代碼。

還不如在建立一個空的Employee.xml文件,然后像上面一樣設置好namespace,從而不用輸入那一行代碼。

上面的說明針對的是,僅針對使用mybats動態代理時的情況。寫得比較亂,以后有時間再改。

Mybatis中namespace的作用

在mybatis中,映射文件中的namespace是用于綁定Dao接口的,即面向接口編程。

當你的namespace綁定接口后,你可以不用寫接口實現類,mybatis會通過該綁定自動 幫你找到對應要執行的SQL語句

ItemsCustomMapperxml:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?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="cn.itcast.ssm.mapper.ItemsMapperCustom" >
   <!-- 定義商品查詢的sql片段,就是商品查詢條件 -->
   <sql id="query_items_where">
    <!-- 使用動態sql,通過if判斷,滿足條件進行sql拼接 -->
    <!-- 商品查詢條件通過ItemsQueryVo包裝對象 中itemsCustom屬性傳遞 -->
        <if test="itemsCustom!=null">
            <if test="itemsCustom.name!=null and itemsCustom.name!=''">
                items.name LIKE '%${itemsCustom.name}%'
            </if>
        </if>
   </sql>
    <!-- 商品列表查詢 -->
    <!-- parameterType傳入包裝對象(包裝了查詢條件)
        resultType建議使用擴展對象
     -->
    <select id="findItemsList" parameterType="cn.itcast.ssm.po.ItemsQueryVo"
         resultType="cn.itcast.ssm.po.ItemsCustom">
        SELECT items.* FROM items 
        <where>
            <include refid="query_items_where"></include>
        </where>
    </select>
</mapper>

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/qq_33530388/article/details/71194518

延伸 · 閱讀

精彩推薦
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7482021-02-04
主站蜘蛛池模板: 成人福利网站 | 免费视频一区二区 | 欧美日本一区二区三区 | 精品国产91乱码一区二区三区 | 97视频免费在线观看 | 久久精品国产一区二区三区不卡 | 免费一级特黄3大片视频 | 久久久午夜爽爽一区二区三区三州 | 91麻豆蜜桃一区二区三区 | 日韩av福利 | 久久美女视频 | 亚洲精品电影在线观看 | 日韩国产欧美视频 | 国产一区二区三区免费在线观看 | 久久首页| 国产精品网站在线观看 | 日韩大片播放器 | 二区视频 | 成人国产精品免费观看 | 激情五月婷婷综合 | 欧美日本国产 | 欧美一区二区在线观看视频 | 四虎小视频 | 久久精品亚洲精品 | 亚洲国产视频网 | 免费观看的黄色 | 午夜在线电影 | 在线看片你懂得 | 天天干天天射天天操 | 成人国产精品一区二区免费麻豆 | 国产欧美一区二区精品性色 | 高清中文字幕 | 欧美成人免费在线视频 | 99久久婷婷国产精品综合 | 国产精品久久久久久亚洲调教 | 欧美在线观看视频 | 日本在线免费 | 国产精品中文字幕在线 | 亚洲精品国产a久久久久久 中文字幕在线第一页 | 天天综合网网欲色 | 在线激情网 |