日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達者為師

網(wǎng)站首頁 編程語言 正文

MP、MybatisPlus、聯(lián)表查詢、自定義sql、Constants.WRAPPER、ew (一)

作者:m0_59259076 更新時間: 2023-10-11 編程語言

需求: 查詢 `animal `表姓名像“狗”的同學(xué)的姓名、年齡、班級名稱(從`class_table`中獲取,其中`class_table`.id = `animal`.id)

Mapper層:

    /**
     *  String WRAPPER = "ew";
     * @param wrapper
     * @return
     */
    List<Animal> selectAnimals(@Param(Constants.WRAPPER) Wrapper<Animal> wrapper);

selectAnimals方法的xml:

    <select id="selectAnimals" resultType="com.zhang.entity.Animal">
        SELECT animal.`name`,animal.`age`,ct.`class_name`
        FROM `animal` animal LEFT JOIN `class_table` AS ct
        ON  animal.`class_id` = ct.`id`
        <where>
            ${ew.sqlSegment}
        </where>
    </select>

注意:此處要使用where標簽,當wrapper條件復(fù)雜的時候,避免發(fā)生奇怪的問題。?

測試:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class)
public class Test {

    @Resource
    private AnimalMapper animalMapper;

    @org.junit.Test
    public void test() {
        String name = "狗";

        QueryWrapper<Animal> wrapper = new QueryWrapper<>();
        wrapper.like("animal.name", name);

        animalMapper.selectAnimals(wrapper).forEach(System.out::println);
    }
}

?查詢結(jié)果:

?控制臺打印SQL:

SELECT
	animal.`name`,
	animal.`age`,
	ct.`class_name` 
FROM
	`animal` animal
	LEFT JOIN `class_table` AS ct ON animal.`class_id` = ct.`id` 
WHERE
	(animal.NAME LIKE ?)

原文鏈接:https://blog.csdn.net/m0_59259076/article/details/125292500

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新