zoukankan      html  css  js  c++  java
  • mybatis之typehandles

    mybatis之typehandles
    无论是Mybatis在预处理语句PreparedStatement中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成java类型。

    重写类型类型处理器或者创建自己的类型处理器来处理不支持或者类标准的类型:
    实现:org.apache.ibatis.type.Typehandler接口
    setParameter:通过preparedStatement对象设置参数,将T类型的数据存入数据库。
    getResult:通过列名或者下标来获取结果数据,也可以通过CallableStatement获取数据。
    继承:org.apache.ibatis.type.BaseTypeHandler

    XML:configuration中属性配置是有顺序的

    Mybatis设置类型处理器的java类型:
    在typehandler element 上增加一个javaType 属性,比如:javaType=“String”,
    在TypeHandler class 上增加一个 @MapperdYTypes 注解来指定与其关联的Java类型列表。
    设置两种方式来指定被关联的JDBC类型:
    在类型处理器的配置元素上增加一个jdbcType属性:jdbcType=“VARCHAR”,
    在类型处理器上增加一个@MappedJdbcTypes注解来指定与其关联的JDBC类型列表。

    如果在配置xml上指定,则注解方式被忽略。

    注意在使用自动检索autodiscovery功能的时候,只能通过注解方式指定JDBC类型。

    Mybatis之EnumTypeHandler 和 EnumOrdinalTypeHandler

    一对一映射:
    嵌套结果映射:
    <association resultMap="XxxResult">
    一次查询多张表将数据分别映射
    嵌套结果查询:
    <association property="address" column="addr_id" select="findAddressById"></assocaiation>
    一次查询一张表,多次查询,最终组合信息得到完整信息。
    一对多映射:
    主键放在一分那个表外键放在多的那个表。
    collection
    多对多映射:
    桥表
    表各自放各自信息,桥表负责拿其他表主键当外键。
    有特殊符号的话 需要用 <![CDATA[ 特殊符号 ]]> 例如 < &

  • 相关阅读:
    leetcode 33. Search in Rotated Sorted Array
    leetcode 32. Longest Valid Parentheses
    leetcode 28. Implement strStr()
    leetcode 27. Remove Element
    leetcode 26. Remove Duplicates from Sorted Array
    leetcode 24. Swap Nodes in Pairs
    leetcode 22. Generate Parentheses
    树莓派的频率管理和热控制
    sql执行insert插入一条记录同时获取刚插入的id
    全程直播个人博客重构过程,采用springboot+dubbo+jpa技术栈。
  • 原文地址:https://www.cnblogs.com/jsersudo/p/10065609.html
Copyright © 2011-2022 走看看