MyBatis配置文件(九)--mappers映射器


映射器是MyBatis中最復雜、最核心的組件,本文先介紹映射器的引入方法,其他的在我日后會再做分析和總結。

之前的文章中有提到過,映射器是由一個接口和一個XML配置文件組成,XML文件中需要定義一個命名空間namespace,它的值就是接口對應的全路徑。

如我定義一個根據ID查詢產品的映射器,需要以下兩步:

第一步:創建一個接口,定義查詢方法

1 public interface ProductMapper {
2     //查詢接口
3     public Product selectById(String id);
4

第二步:創建對應的XML,定義命名空間

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <mapper namespace="com.daily.dao.ProductMapper">
 4     <resultMap id="BaseResultMap" type="com.daily.pojo.Product">
 5         <id column="id" jdbcType="VARCHAR" property="id" />
 6         <result column="product_name" jdbcType="VARCHAR" property="productName" />
 7         <result column="product_price" jdbcType="VARCHAR" property="productPrice" />
 8         <result column="product_type" jdbcType="VARCHAR" property="productType" />
 9     </resultMap>
10     
11     <!-- MyBatis自動映射功能:
12     1、首先通過接口中的方法名與sql查詢語句進行關聯
13     2、當查詢到的字段與pojo中的字段完全對應的時候,就會將查詢結果自動映射成一個pojo對象
14     3、如果數據庫字段和類字段不一致,則需要進行轉換,所以一般設計數據庫的時候,字段采用駝峰式
15     -->
16     <select id="selectById" parameterType="String" resultType="product">
17         SELECT * FROM product p WHERE p.id = #{id,jdbcType=VARCHAR}
18     </select>
19 </mapper>

在上面的配置中,mapper中有一個namespace="com.daily.dao.ProductMapper"配置,這就是命名空間,其值是接口的全路徑,當然這個全路徑也可以在別名中定義,然后直接在這里引用。

定義好了一個映射器之后就可以在mybatis-config.xml中引入了,引入方法有以下幾種:

1、用文件路徑引入

<mappers>
        <mapper resource="com/daily/mapper/UserMapper.xml" />
        <mapper resource="com/daily/mapper/ProductMapper.xml" />
        <mapper resource="com/daily/mapper/BlogMapper.xml" />
</mappers>

2、用包名引入

這種引入方式相當於批量引入一個包下的所有映射器

<mappers>
        <package name="com.daily.mapper"/>
</mappers>

3、用類注冊引入

<mappers>
        <mapper class="com.daily.mapper.UserMapper" />
        <mapper class="com.daily.mapper.ProductMapper" />
        <mapper class="com.daily.mapper.BlogMapper" />
</mappers>

4、使用URL方式引入

<mappers>
        <mapper url="xml文件訪問URL" />
</mappers>

根據實際情況選擇合適的引入方式即可。

以上就是映射器引入方式的介紹。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM