欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis使用总结

程序员文章站 2022-07-15 16:11:47
...

1. Mapped Statements collection does not contain value for *.executeSql

原因:xxMapper.xml配置文件和java接口,方法名不匹配。

2. 动态传入纯sql执行:

配置:

<select id="executeSql" parameterType="HashMap" resultType="HashMap" statementType="STATEMENT">
     ${sql}
 </select>

 注意:默认的编译方式改了(预编译改为非预编译),并且参数接受使用${XXX}方式。

3. 对与CLOB字段的处理:

    configuration.xml中配置:

<!-- 大数据类型处理 -->
<typeHandlers>
	<typeHandler javaType="String" jdbcType="CLOB" handler="org.apache.ibatis.type.ClobTypeHandler" />
</typeHandlers>

 

查询时:

<if test="@com.joinsoft.frame.utils.ongl.Ongl@isNotEmpty(fcontent)">
       AND FCONTENT = #{fcontent,jdbcType=CLOB,typeHandler="org.springframework.orm.ibatis.support.ClobStringTypeHandler"}
</if>

 

插入和更新时:使用上述配置<typeHandlers>处理。

 4. 需要在xml文件中使用<号的时候如何处理:

一种方法:在某一个类中定义一个属性,使其值为'<',然后parameterType指定为这个类,其符号用其代替。比如我有一个Page类,定义一个属性 startOperator = "<=" 然后调用:${page.startOperator}

另一种方法:采用转义字符直接替换<号为 &lt;  >号为&gt;即可。

注:${name},官方解释这种方式,Mybatis不会修改或者转义字符串。但是这样不安全,存在潜在的注入攻击。因此不应该允许用户直接输入此类字段,或者通常自行转义并检查。