自定义Mapper文件的几种写法

本文介绍MyBatis中XML转义的方法,包括不含动态语句和含动态语句的情况,并解释了未指定jdbc类型时可能出现的问题及常见javaType与jdbcType的对应关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.为xml中某些特殊符号作转义

  1.1不含有动态语句(where,if)

<select id="getAccountsByBranch" resultType="Account" parameterType="string">  
    <![CDATA[SELECT * FROM t_acctreg_accounts where acctno < #{acctno}]]>  
</select> 


  1.2含有动态语句(where,if)

  

<select id="getAccountErrorCount" resultType="int" parameterType="map">  
    select count(*) from t_acctreg_accounterror  
    <where>  
        <if test="enddate != null and enddate != ''">  
            <![CDATA[createdate <= #{enddate}]]>  
        </if>  
        <if test="acctno != null and acctno != ''">  
            <![CDATA[AND acctno LIKE '%'||#{acctno}||'%']]>  
        </if>  
    </where>  
</select>  

2.不指定jdbc类型的参数,MyBatis默认为Other类型。当不指定jdbc类型时,若参数为null,将报错Error setting null parameter. Most JDBC drivers require that the JdbcType must be specified for all nullable parameters。

  下面是MyBatis中常用的javaType和jdbcType的对应关系

  

javaType   jdbcType
String    CHAR
String    VARCHAR
BigDecimal   DECIMAL
BigDecimal  NUMERIC
boolean     BOOLEAN 
byte     TINYINT 
short     SMALLINT
int      INTEGER
long     BIGINT
float     FLOAT 
double    DOUBLE
Date     DATE
Time     TIME
Timestamp  TIMESTAMP
Clob     CLOB
Blob     BLOB
  大致是相对应地改为全部大写。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值