• 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[ 特殊符号 ]]> 例如 < &

  • 相关阅读:
    产品中常用理论
    Mac下配置环境变量
    Maven仓库
    深入理解Spring中的各种注解
    JAVA中简单字符串分割
    WARN: HHH000277: Could not bind factory to JNDI
    dos命令窗口下下java命令提示找不到或无法加载主类
    数组实用类:Arrays
    数组
    线程创建方式
  • 原文地址:https://www.cnblogs.com/jsersudo/p/10065609.html
Copyright © 2020-2023  润新知