1. 程式人生 > >[mybatis]傳值和返回結果

[mybatis]傳值和返回結果

upd 基本 etc dna bat color pre ike from

一、傳值:
parameterType的形式:可以傳遞一個類,也可以是一個map

<update id="updateCategory" parameterType="Category" >
   update category_ set name=#{name} where id=#{id}
</update>
<select id="listCategoryByName" parameterType="string" resultType="Category">
  select * from category_ where name like concat(‘%‘,#{0},‘%‘)
</select>
<select id="listCategoryByIdAndName"  parameterType="map" resultType="Category">
   select * from   category_  where id> #{id}  and name like concat(‘%‘,#{name},‘%‘)
</select>

在代碼側的寫法:

        Map<String,Object> params = new HashMap<>();
        params.put(
"id", 3); params.put("name", "cat"); List<Category> cs = session.selectList("listCategoryByIdAndName",params);

在parameterType="string" 為基本類型時,引用可以寫#{0},也可以為#{id},#{idd},中間為任意名,也可以省略parameterType不寫

在parameterType="map"時,在select中可以不寫parameterType

二、返回結果:

1:resultType的形式:返回的是一個類

    <
select id="getCategory" parameterType="_int" resultType="Category"> select * from category_ where id= #{id} </select>

2:resultMap的形式:返回的是一個map

resultMap中的值categoryBean是該xml文件中的resultMap的id

    <resultMap type="Category" id="categoryBean">
        <id column="cid" property="id" />
        <result column="cname" property="name" />

        <!-- 一對多的關系 -->
        <!-- property: 指的是集合屬性的值, ofType:指的是集合中元素的類型 -->
        <collection property="products" ofType="Product">
            <id column="pid" property="id" />
            <result column="pname" property="name" />
            <result column="price" property="price" />
        </collection>
    </resultMap>

     <!--關聯查詢分類和產品表 -->
    <select id="listCategory" resultMap="categoryBean">
        select c.*, p.*, c.id ‘cid‘, p.id ‘pid‘, c.name ‘cname‘, p.name ‘pname‘
        from category_ c
        left join product_ p on c.id = p.cid
    </select>

[mybatis]傳值和返回結果