Mybatis-mapper文件配置说明

mybatis官方文档地址html

----------------------------------------------------------------------------------------sql

问:<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">数据库

答:定义mapper标签编程

 

问:<mapper namespace="com.yinyi.pojo">mybatis

答:app

  1. 在MyBatis中,Mapper中的namespace用于绑定Dao接口的,即面向接口编程。性能

    它的好处在于当使用了namespace以后就能够不用写接口实现类,业务逻辑会直接经过这个绑定寻找到相对应的SQL语句进行对应的数据处理spa

  2. 详解namespacexml

 

问:<select id="listCategory" resultType="Category">htm

答:

  1. id: listCategory 进行标示以供后续代码调用这个select
  2. resultType="Category"表示返回的数据和Category关联起来,这里本应该使用的是 com.yinyi.pojo.Category, 可是由于上一步配置了别名,因此直接使用Category就好了

 

问:<insert id="insertAuthor" useGeneratedKeys="true" keyProperty="id">

答:

  1. 若是你的数据库支持自动生成主键的字段(好比 MySQL 和 SQL Server),那么你能够设置 useGeneratedKeys=”true”,而后再把 keyProperty 设置到目标属性上就OK了。

问:<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>

答:resultMap的映射方法

 

 

问:resultMap的相关标签介绍

答:

resultMap

  • constructor - 用于在实例化类时,注入结果到构造方法中
    • idArg - ID 参数;标记出做为 ID 的结果能够帮助提升总体性能
    • arg - 将被注入到构造方法的一个普通结果
  • id – 一个 ID 结果;标记出做为 ID 的结果能够帮助提升总体性能
  • result – 注入到字段或 JavaBean 属性的普通结果
  • association – 一个复杂类型的关联;许多结果将包装成这种类型
    • 嵌套结果映射 – 关联能够指定为一个 resultMap 元素,或者引用一个
  • collection – 一个复杂类型的集合
    • 嵌套结果映射 – 集合能够指定为一个 resultMap 元素,或者引用一个
  • discriminator – 使用结果值来决定使用哪一个 resultMap
    • case – 基于某些值的结果映射
      • 嵌套结果映射 – 一个 case 也是一个映射它自己的结果,所以能够包含不少相 同的元素,或者它能够参照一个外部的 resultMap。

 

问: @Select(" select * from category_ limit #{start},#{count}")
    public List<Category> listByPage(@Param("start") int start, @Param("count")int count);

答:分页设置

相关文章
相关标签/搜索