在使用Mybatis框架中遇到的bug

本文介绍了在使用Mybatis框架时遇到的各种问题,包括动态SQL的实现方式,如XML、Java代码和注解的优缺点,以及语句与方法的映射。通过四个不同组合的实践,探讨了适用于不同场景的解决方案,并强调了在Spring Boot中配置Mybatis的重要性。此外,分享了在解决bug过程中的经验和资源查找策略。
摘要由CSDN通过智能技术生成

前段时间,看了看Mybatis官方文档,在自己跟着做了两个例子后,准备在实际项目中用一用。下面我从实招来,在项目中遇到的一些坑。

Mybatis框架的大体思路是,1.自定义SQL语句,2.将语句和对应的方法关联,3.使用之。套路如下:

1.SQL语句可以通过xml或者java代码代码生成对应的SQL语句或者通过诸如@Select注解来定义,都是ok的,官方推荐用xml,因为其表达能力更强,官方也做了更好的适配。
2.在语句与方法映射这一步,可以使用<mapper> 标签进行注册,然后通过sqlSession的一系列方法使用之,也可以自己定义一个接口,在接口中定义方法来实现映射。

关于第一部分:

前两种方式都可以写动态的SQL语句,第三种方式貌似只能写静态的SQL语句,这里动态的意思是指根据条件来添加对应的语句。
比如:

1.通过xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mappers.GoodsMapper">
    <select id="selectGoods" resultType="com.zeng.domain.Goods" parameterType="map">
        SELECT * FROM goods
        <where>
            <if test="platform != null">
                platform = #{platform}
            </if>
            <if test="fundType != null">
                AND fund_type = #{fundType}
            </if>
        </where>
    </select>
</mapper>

2.通过java代码:

package com.zeng;

import org.apache.ibatis.jdbc.SQL;

import java.util.Map;

/**
 * Created by zeng on 17-3-1.
 */
public class GoodsDaoSelectProvider {
    static String platform;
    static String fundType;
    static Integer pageSize;
    static Integer pageNum;
    public static St
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
导包问题的解决方法是确保导入的是mybatis的@Param注解,而不是spring框架的@Param注解。在使用mybatis的@Param注解时,正确的导入应该是import org.apache.ibatis.annotations.Param; [1。在IDEA等开发环境,可以通过手动更改导入的包路径来解决这个问题。确保导入了mybatis的@Param注解,而不是spring框架的@Param注解,以避免出现导包错误的情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [@Param,参数对象找不到的bug](https://blog.csdn.net/liu4461431/article/details/126852236)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Spring的@Param注解和Mybatis的@Param注解](https://blog.csdn.net/WZH577/article/details/88990637)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [mybatis@Param注解遇到的问题——一定要注意import哪个包](https://blog.csdn.net/oldGreenHand46/article/details/119928582)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值