mybatis开发中遇到的小问题

234 阅读1分钟

mybatis开发

mybatis mysql知识

mybatis 处理like情况

 <if test="roleName != null">
      AND ROLE_NAME like CONCAT('%',#{roleName},'%')
  </if>

mybatis插入集合

    INSERT INTO t_merc_role_resource (
      ID, ROLE_ID, ACTION_URL,
      PERMISSION_STATUS, CREATE_TM,
      CREATE_OPER, PERMISSION_CODE
    )
    VALUES
      <foreach collection="list" item="item" index="index" separator="," >
        (#{item.id},#{item.roleId}, #{item.actionUrl}, 1, #{item.createTm},
        #{item.createOper}, #{item.permissionCode})
      </foreach>

mybatis插入或更新集合(saveORupdate)

INSERT INTO t_merc_role_resource (
    ID, ROLE_ID, ACTION_URL,
    PERMISSION_STATUS, CREATE_TM,
    CREATE_OPER, PERMISSION_CODE
    )
    VALUES
    <foreach collection="list" item="item" index="index" separator=",">
      (#{item.id},#{item.roleId}, #{item.actionUrl}, 1, #{item.createTm},
      #{item.createOper}, #{item.permissionCode})
    </foreach>
    ON DUPLICATE KEY UPDATE
    ROLE_ID = VALUES (ROLE_ID),
    ACTION_URL = VALUES(ACTION_URL),
    PERMISSION_STATUS = VALUES (PERMISSION_STATUS),
    CREATE_TM = VALUES (CREATE_TM),
    CREATE_OPER = VALUES (CREATE_OPER),
    PERMISSION_CODE = VALUES(PERMISSION_CODE)

tinyint(1)被转成Boolean

  • 当字段类型为tinyint(1),resultType="java.util.Map"的时候,字段的值会被转成true或false
  • 解决方式一:字段*1
  • 解决方式二:jdbcUrl添加tinyInt1isBit=false

***Mapper.xml

  • 任何一个***Mapper.xml 中出现resultMap="java.util.Map" 会导致使用 resultType ="java.util.Map" 的地方异常
org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.util.Map