在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
总结一些基础的常见的Mybatis问题,方便自己,方便读者学习,内容不多 1、大于号、小于号在 sql 语句中的转换使用 mybatis 时 sql 语句是写在 xml 文件中,如果 sql 中有一些特殊的字符的话,比如< ,<=,>,>=等符号,会引起 xml 格式的错误,需要替换掉,或者不被转义。 有两种方法可以解决:转义字符和标记 CDATA 块。 方式1、转义字符 1 <select id="searchByPrice" parameterType="Map" resultType="Product"> 方式2、标记 CDATA 1 <select id="searchByPrice" parameterType="Map" resultType="Product"> 转义字符表
2、MyBatis 中的 resultType 和 resultMap网上的总结很多,简单而言,resultType 用于返回值只有一个字段的类型,resultMap 用于返回值有多个字段的类型。至于结果是 List 还是一个,则在 Mapper 中定义返回值是List还是单个。 使用 resultType: 1 <select id="count" resultType="java.lang.Integer"> 使用 resultMap: 1 <resultMap type="com.liulanghan.Blog" id="BlogResult"> 3、参数Mapper 中需要用 @Param("queryDate")定义参数名称,sql 中用#{queryDate}使用参数,字符串也不需要引号。 参数判断和if的用法: 1 <if test="queryDate != null"> when otherwise 就是 if else 1 <choose> 如果要判断的字符串,则需要加引号 1 <when test="gender != null and gender == 'MALE'"> 4.传入参数参数为0查询条件失效4.1 场景再现场景是这样的,需要做一个对账单查询,可以按金额范围进行查询,页面参数写完之后进行条件,输入0测试了无数次均失效。 4.2 原因解析当页面参数为 0,传入到 mybatis 的 xml 中后,如果不是字符串,需指定数据类型,否则会被误认为 null
这种情况如果 totalAmount 为 0 时将被误认为是 null,里面的条件不会执行。正确的姿势如下 1.添加 0 判断
2.规定传入参数的类型
|
请发表评论