在使用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值