MyBatis-详细映射器配置参考

mapper文件标签元素概览

常用一级二级标签概览

<mapper>
	<cache /> 缓存
	<cache-ref /> 缓存引用
	<resultMap /> 结果映射
	<parameterMap /> 参数映射
	<sql /> 可重用sql语句
	<insert /> 映射插入语句
	<update /> 映射更新语句
	<delete /> 映射删除语句
	<select /> 映射查询语句
mapper>

mybatis.org/dtd/mybatis-3-mapper.dtd参考文档部分截取



增删改查标签介绍参考

DTD文档中的参考

  • select标签可选的属性参考
      
                                                                                               
    
  • insert标签可选的属性参考
    
                                                                                                         
    
  • update标签可选的属性参考
     
                                                                                                          
    
  • delete标签可选属性参考
     
                                                                                              
    

增删改查中可选属性整合介绍参考

  • 全局id
    • id
      全局唯一标识符
      • 全局的含义,即在mapper文件的配置范围中.
  • 主键配置
    • keyProperty
      指定POJO中哪个属性是主键
      • 不能和标签属性keyColumn同时使用
    • keyColumn
      指定映射表中那个列作为主键
      • 不能和keyProperty同时使用
      • 只接受整型参数
    • useGeneratedKeys
      是否使用数据库内部生成的主键
      • 内部使用JDBCgetGeneratedKeys方法来获取
      • 默认值是false
      • 只针对insertupdate语句有效
      • 一般配合keyPropertykeyColumn使用
  • 执行参数配置
    • parameterMap
      参数映射
      • 目前已废弃,不建议使用
    • parameterType
      标明参数类型
      • 可以是完全限定名也可以是别名
      • 可省略设置,容器会根据TypeHandler进行判断
  • 返回结果配置
    • resultMap
      返回结果类型映射
      • ibatis中功能最为强大的结果映射标签,使用率较高
      • 属性值即是外部标签resultMap规定的id
      • resultTyperesultMap不能同时使用
    • resultType
      标明返回结果类型
      • 可以是完全限定名,也可以是别名
      • 需要考虑返回结果类型有集合的情况
      • resultTyperesultMap属性不能同时使用
    • resultSetType
      针对JDBCResultSet接口而言
      • 候选值FORWARD_ONLY,SCROLL_SENSITIVE,SCROLL_INSENSITIVE
      • 默认值unset
      • 实际场景,是由具体的数据库驱动厂商提供的
      • 仅作了解
    • resultSets
      是否列出多结果集的名称
      • 主要针对的是多结果集的情况
      • 若设置为true,则使用逗号分割列出多个结果集
      • 默认值设置为false
    • resultOrdered
      是否处理嵌套结果集
      • 针对的select语句
      • 默认值是false
    • fetchSize
      设置返回结果集的行数
      • 仅是尝试操作设置
      • 真实效用,依赖不同的驱动性能
  • 缓存配置
    • flushCache
      清空本地的所有缓存
      • 包含一级缓存二级缓存
      • 默认值为false
    • useCache
      是否使用二级缓存
      • 针对的是sql语句的执行结果
      • select标签中,默认设置为true
  • 其他选项配置
    • timeout
      等待返回执行结果的时间
      • 具体情况效用,依赖具体的驱动
      • 默认值是unset
    • statementType
      指定使用JBDC的哪个Statement执行sql语句
      • 属性候选值有STATEMENT,PREPARED,CALLABLE
      • 对应的类对象是Statement,PreparedStatement,CallableStatement
      • 默认值是PREPARED
    • databaseId
      与全局配置中标签databaseIdProvider呼应
      • 单个数据库场景不建议配置使用
    • lang
      自定义语言
      • 可使用第三方语言
      • 使用率较少,一般不推荐使用

其他标签介绍参考

sql标签参考

  • sql标签的效用
    定义可重用的sql语句
    • 可以在任意地方引用
    • 可以是部分sql语句,也可以是全部
    • 减少映射配置的工作量,和代码的冗余度
  • DTD文档中sql规定参考
    
    
    
  • sql标签部分说明
    • 可选属性参考
      • id
        全局唯一标识id
        • 所谓的全局,针对的是mapper文件的作用范围
      • lang
        自定义语言
        • 可使用第三方语言
        • 使用率较少,一般不推荐使用
      • databaseId
        与全局配置中标签databaseIdProvider呼应
        • 单个数据库场景不建议配置使用

parameterMap标签参考

此标签已废弃,将来可能会被移除,不建议使用和了解.

resultMap标签参考

  • resultMap标签说明
    • ibatis中功能最为强大的标签
    • 可以处理任意复杂的返回结果映射
    • 可轻松处理一对多,多对一,多对多复杂结果映射
    • 是ibatis中半自动化ORM最为核心的功能体现
  • DTD文档中resultMap规定参考
    
    
    
  • resultMap标签部分说明
    • 可选属性参考
      • id
        全局唯一标识id
        • 主要为了标识区别resultMap
      • type
        指定返回结果的映射包装类型
        • 可以是完全限定名,也可以是别名
      • extend
        此结果映射继承全局存在的其他结果映射配置
      • autowiredMapping
        是否开启自动映射
        • 表示ibatis会覆盖全局配置属性autoMappingBehavior
        • 效用主要是针对此标签的resultMap
        • 默认值为unset
    • 可选子标签参考
      • constructor
        用来手动配置构造方法,来实例化一个POJO类对象
        • 应用场景为,映射结果的POJO类对象不存在无参的构造器
      • id
        用来标记映射结果中的主键,配对属性列名
      • result
        用来标记映射结果中非主键,配对属性列名
      • association
        处理一对一级联关系映射
      • collection
        处理一对多级联关系映射
      • discriminator
        鉴别器
        • 决定返回结果使用哪个resultMap

cache标签参考

  • DTD文档中规定参考
    
    
    
  • cache标签部分说明
    • 可选属性参考
      • type
        指定自定义缓存配置的类对象的完全限定名
      • eviction : 英 /ɪ'vɪkʃ(ə)n/
        配置缓存收回策略
        默认值是LRU
        候选收回策略有:
        • LRU : 最近最少使用的:移除最长时间不被使用的对象
        • FIFO : 先进先出:按对象进入缓存的顺序来移除它们
        • SOFT : 软引用:移除基于垃圾回收器状态和软引用规则的对象
        • WEAK : 弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象
      • flushInterval
        定期刷新缓存的时间
        • 默认是不设置的
        • 设置的单位是毫秒/ms
        • 合法的属性值是任意正整数
      • size
        缓存中,设置引用对象的数目
        • 注意应用内存中可存储的资源对象数目,设置值不应大于其值
        • 默认值是1024
      • readOnly
        设置缓存是否只读
        • 默认值是false

cache-ref标签参考

  • cache-ref标签说明
    引用其他mapper文件中的缓存配置
  • DTD文档中规定参考
    
    
    
  • 可选属性参考
    • namespace
      其他mapper文件的命名空间值

你可能感兴趣的:(归档弃用)