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

  • 相关阅读:
    5分钟带你了解Kafka的技术架构
    聊聊我的知识体系
    你分得清楚Maven的聚合和继承吗?
    为抖音而生的多闪,如何获取抖音的用户数据?
    消息中间件系列第3讲:使用消息队列需要考虑的几个问题
    消息中间件系列第2讲:如何进行消息队列选型?
    消息中间件系列第1讲:为什么要用消息队列?
    JVM规范系列开篇:为什么要读JVM规范?
    安全编码实践之三:身份验证和会话管理防御
    安全编码实践之二:跨站脚本攻击防御
  • 原文地址:https://www.cnblogs.com/zengming/p/7769219.html
Copyright © 2011-2022 走看看