zoukankan      html  css  js  c++  java
  • MyBatis配置Mapping,JavaType和JDBCType的对应关系,#与$区别

    Mybatis中javaType和jdbcType对应关系:
    JDBC Type               Java Type
    CHAR                   String
    VARCHAR                 String
    LONGVARCHAR               String
    NUMERIC                  java.math.BigDecimal
    DECIMAL                   java.math.BigDecimal
    BIT                      boolean
    BOOLEAN                  boolean
    TINYINT                     byte
    SMALLINT                  short
    INTEGER                    int
    BIGINT                   long
    REAL                      float
    FLOAT                   double
    DOUBLE                   double
    BINARY                     byte[]
    VARBINARY                   byte[]
    LONGVARBINARY              byte[]
    DATE                      java.sql.Date
    TIME                       java.sql.Time
    TIMESTAMP                 java.sql.Timestamp
    CLOB                      Clob
    BLOB                       Blob
    ARRAY                    Array
    DISTINCT                mapping of underlying type
    STRUCT                    Struct
    REF                       Ref
    DATALINK                java.net.URL[color=red][/color]

    样例:

     1 <resultMap type="java.util.Map" id="resultData">  
     2   <result property="FLD_NUMBER" column="FLD_NUMBER"  javaType="double" jdbcType="NUMERIC"/>  
     3   <result property="FLD_VARCHAR" column="FLD_VARCHAR" javaType="string" jdbcType="VARCHAR"/>  
     4   <result property="FLD_DATE" column="FLD_DATE" javaType="java.sql.Date" jdbcType="DATE"/>  
     5   <result property="FLD_INTEGER" column="FLD_INTEGER"  javaType="int" jdbcType="INTEGER"/>  
     6   <result property="FLD_DOUBLE" column="FLD_DOUBLE"  javaType="double" jdbcType="DOUBLE"/>  
     7   <result property="FLD_LONG" column="FLD_LONG"  javaType="long" jdbcType="INTEGER"/>  
     8   <result property="FLD_CHAR" column="FLD_CHAR"  javaType="string" jdbcType="CHAR"/>  
     9   <result property="FLD_BLOB" column="FLD_BLOB"  javaType="Blob" jdbcType="BLOB" />  
    10   <result property="FLD_CLOB" column="FLD_CLOB"  javaType="string" jdbcType="CLOB"/>  
    11   <result property="FLD_FLOAT" column="FLD_FLOAT"  javaType="float" jdbcType="FLOAT"/>  
    12   <result property="FLD_TIMESTAMP" column="FLD_TIMESTAMP"  javaType="java.sql.Timestamp" jdbcType="TIMESTAMP"/>  
    13  </resultMap> 

     MyBatis 占位符#和 $ 的区别如下:

      #符号将传入的数据都当做一个字符串,会对自动传入的数据加一个双引号;

      $ 符号将传入的数据直接显示生成 SQL 中;

      #符号存在预编译的过程对问号赋值,防止 SQL 注入

      $ 符号是直译的方式,一般用在 order by ${列名}语句中;

      能用#号就不要用 $ 符号,$符号主要用于order by

  • 相关阅读:
    性能学习总结
    xpath的不稳定性
    jenkins 打包时,提示字符不可映射字符
    jenkins 远程部署失败 控制台部署成功
    QTP ExecuteFile应用外部脚本时报“无效字符”错误_Ealge_新浪博客
    Tips:getroproperty调试可以通过,但是运行不可以
    在mac上搭建octopress+github pages博客
    SDWebImage源码分析
    提高XCode编译速度
    iOS app调试
  • 原文地址:https://www.cnblogs.com/zengming/p/7769219.html
Copyright © 2011-2022 走看看