【无标题】

#### ResultMap

       ResultMap作用: 结果集映射,将从数据库查询的内容 和pojo类的属性进行一一映射,mybatis就能对查询结果自动赋值。

```xml

<resultMap id="BaseResultMap" type="com.icss.mybatis.dept.pojo.Dept">

<!--主键列映射-->

<id column="dept_id" jdbcType="INTEGER" property="deptId" />

<!--普通列映射-->

<result column="dept_name" jdbcType="VARCHAR" property="deptName" />

<result column="dept_loc" jdbcType="VARCHAR" property="deptLoc" />

</resultMap>

```

通过id来使用ResultMap

eg:<select id="get" resultMap="BaseResultMap">,相当于标签里的一个属性。

在&lt;insert>等标签中 可以通过 resultMap="resultMapId" 来使用结果集映射

#### mybatis返回值的几种情况:

- resultMap: 代表使用一个已经定义好了的<font color="red">&lt;ResultMap></font>结果集映射

(查询的时候需要有返回值结果)(查询表里本来就有的列)

- resultType: 共有3中情况:

  - 返回一个单一类型,例如 查询公司中一共有多少个部门。

    ```xml

    <select id="getCount" resultType="java.lang.Integer">

        SELECT COUNT(dept_id) FROM dept

    </select>

    ```

  - 返回一个组合类型,例如返回pojo类的情况

    ```xml

      <!--如果直接在resultType中声明pojo类 必须保证查询结果的列名和pojo类的属性名完全一致 才能够通  过mybatis自动赋值-->(不建议使用)

      <select id="get2" resultType="Dept">

        select DEPT_ID AS deptId, DEPT_NAME deptName , DEPT_LOC AS deptLoc

        from dept where DEPT_ID=#{deptId}

      </select>

    ```

  - 返回一个复杂数据类型,例如统计分析结果,可以通过resultType="Map"解决

    ```xml(例如松散结构查询)(不是数据库表里原来有点的东西)

      <select id="getCountByLoc" resultType="java.util.HashMap">

        SELECT dept_loc, COUNT(*)

        FROM dept

        GROUP BY dept_loc

      </select>

    ```

(List套map)List<Dept> queryById(HashMap<String,Integer> map);

#### paramenterType的几种情况:

- 传入一个单一类型:例如传入删除部门的ID

  - 写不写paramenterType #{}中写具体哪个参数 不限制

- 传入一个组合类型: 例如增加部门

  - #{} 此时代表的是 传入的pojo类的属性

- 传入一个松散的结构: Map集合

  - #{}此时代表的时 传入的map中的key

    ```java

    List<Dept> queryById(HashMap<String,Integer> map);  

    ```

  - 如果希望方法能通同时传入多个参数,那么可以通过@Param注解给接口的方法参数起名字

    ```java

    List<Dept> queryById(@Param("start")Integer start , @Param("end")Integer end);

    ```

  - ```xml

     <select id="queryById" parameterType="java.util.HashMap" resultMap="BaseResultMap">

        SELECT * FROM dept

        WHERE DEPT_ID BETWEEN #{start} AND #{end}

      </select>

    ```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值