当前位置:   article > 正文

mybatis动态SQL之foreach、模糊查询、分页_foreach分页

foreach分页

前言

之前我们讲过了mybatis的sql语句是由我们手动编写的,但是我们的mybatis逆向工程生成的xxMapper.xml中会自动生成一部分动态的sql

什么叫做动态SQL?

根据用户提供的参数,动态决定查询语句依赖的查询条件或SQL语句的内容。

这篇博客主要讲述mybatis的动态SQL以及其中的分页。

测试mybatis的自生动态sql

首先我们根据service类创建一个测试类
在这里插入图片描述
勾上setUp和tearDown,再选勾上自己要测试的方法
在这里插入图片描述

将测试类准备好:

package com.zengjing.service;

import com.zengjing.mapper.BookMapper;
import com.zengjing.model.Book;
import com.zengjing.service.impl.BookServiceImpl;
import com.zengjing.util.SessionUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

/**
 * @author zengjing
 * @site https://blog.csdn.net/JiangHu_Java
 * @create  2020-10-21 14:38
 */
public class IBookServiceTest {
   

    private IBookService bookService;
    private SqlSession sqlSession;


    @Test
    public void deleteByPrimaryKey() {
   
        this.bookService.deleteByPrimaryKey(12);
    }

    @Test
    public void updateByPrimaryKey() {
   
        Book book=new Book();
        book.setBookId(12);
        book.setBookName("新神雕侠侣5555");
        book.setBookPrice((float) 38);
        book.setBookBrief("略ovo");
        this.bookService.updateByPrimaryKey(book);
    }

    @Test
    public void insert() {
   
        Book book=new Book();
        book.setBookId(13);
        book.setBookName("测试1");
        book.setBookPrice((float) 14);
        book.setBookBrief("略");
        this.bookService.insert(book);
    }


    @Test
    public void selectByPrimaryKey() {
   
        Book book = this.bookService.selectByPrimaryKey(1);
        System.out.println(book);
    }


    @Before
    public void setUp() throws Exception {
   
        BookServiceImpl bookService=new BookServiceImpl();
        sqlSession = SessionUtil.openSession();
        BookMapper mapper = sqlSession.getMapper(BookMapper.class);
        bookService.setBookMapper(mapper);
        this.bookService=bookService;
    }

    @After
    public void tearDown() throws Exception {
   
        sqlSession.commit();
        sqlSession.close();
    }

}

再看看生成的xxMapper.xml中自动生成的动态sql:

<?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="com.zengjing.mapper.BookMapper" >
  <resultMap id="BaseResultMap" type="com.zengjing.model.Book" >
    <constructor >
      <idArg column="book_id" jdbcType="INTEGER" javaType="java.lang.Integer" />
      <arg column="book_name" jdbcType="VARCHAR" javaType="java.lang.String" />
      <arg column="book_price" jdbcType=
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/1022328
推荐阅读