中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 如何在springboot中使用mybatis-plus實現一個多表分頁查詢功能

如何在springboot中使用mybatis-plus實現一個多表分頁查詢功能

發布時間:2021-03-09 15:59:58 來源:億速云 閱讀:1421 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關如何在springboot中使用mybatis-plus實現一個多表分頁查詢功能,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

1.新建一個springboot工程

2.需要導入mybatis和mybatis-plus的依賴文件

<dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.1.1</version>
    </dependency>
     <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>2.0.1</version>
    </dependency>

3.application.yml配置文件

server:
 port: 8080
spring:
 datasource:
  url: jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=UTC
  username: root
  password: 數據庫密碼
mybatis:
 mapper-locations: classpath*:mapper/*.xml

mybatis-plus:
 mapper-locations: classpath:/mapper/*Mapper.xml
logging:
 level:
  com.tuanzi.*: debug

4.首先我們需要寫一個類來配置分頁插件

省略import
@EnableTransactionManagement
@Configuration
@MapperScan("com.tuanzi.*.mapper*")
public class MybatisPlusConfig {

  /**
   * 分頁插件
   */
  @Bean
  public PaginationInterceptor paginationInterceptor(){
    return new PaginationInterceptor();
  }
}

5.controller類

@RestController
@RequestMapping("/user")
public class UserController {

  @Autowired
  UserService userService;

  /**
   * 多表關聯,分頁查詢(1對1)
   * @param page
   * @return
   */
  @RequestMapping("/findAll")
  public Result<IPage<User>> findAll(@RequestBody Page<User> page){

     return userService.pages(page);

  }

  /**
   * 多表關聯,分頁查詢(1對多)
   * @param page
   * @return
   */
  @RequestMapping("/selectAll")
  public Result<IPage<User>> selectAll(@RequestBody Page<User> page){

    return userService.pageList(page);

  }
}

6.service類

public interface UserService extends IService<User> {

  Result<IPage<User>> pages(Page<User> page);

  Result<IPage<User>> pageList(Page<User> page);
}

7.service實現類

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

  @Autowired
  UserMapper userMapper;
  @Override
  public Result<IPage<User>> pages(Page<User> page) {
    IPage<User> userIPage = userMapper.Pages(page);
    return Result.getSuccess("分頁查詢成功",userIPage);
  }

  @Override
  public Result<IPage<User>> pageList(Page<User> page) {
    IPage<User> userIPage = userMapper.pageList(page);
    return Result.getSuccess("分頁查詢成功",userIPage);
  }
}

8.mapper接口

注意!!: 如果入參是有多個,需要加注解指定參數名才能在xml中取值

@Mapper
@Repository
public interface UserMapper extends BaseMapper<User> {

  IPage<User> Pages(@Param("page") Page<User> page);

  IPage<User> pageList(@Param("page") Page<User> page);
}

9.xml文件

一對一關聯

 <!-- 一對一 通用查詢映射結果 -->
  <resultMap id="BaseResultMap1" type="com.tuanzi.user.entity.User">
    <result column="id" property="id" />
    <result column="name" property="name" />
    <result column="age" property="age" />
    <result column="email" property="email" />
    <!--assocication  一對一關聯查詢
        可以指定聯合的JavaBean對象
        property="work"指定哪個屬性是聯合的對象
        javaType:指定這個屬性對象的類型
      -->
    <association property="work" javaType="com.tuanzi.user.entity.Work">
      <result column="id" property="id" />
      <result column="position" property="position" />
      <result column="user_id" property="userId" />
    </association>
  </resultMap>

一對多關聯

<!-- 一對多 通用查詢映射結果 -->
  <resultMap id="BaseResultMap2" type="com.tuanzi.user.entity.User">
    <result column="id" property="id" />
    <result column="name" property="name" />
    <result column="age" property="age" />
    <result column="email" property="email" />
    <!--
		collection定義關聯結合類型的屬性的封裝規則
		property="workList"指定哪個屬性是聯合的對象
		ofType:指定集合里面元素的類型
		-->
    <collection property="workList" ofType="com.tuanzi.user.entity.Work">
      <result column="id" property="id" />
      <result column="position" property="position" />
      <result column="user_id" property="userId" />
    </collection>
  </resultMap>

SQL語句:

<select id="Pages" resultMap="BaseResultMap1">
    select a.id id,a.name name,a.age age,a.email email,b.position position,b.user_id user_id from user a LEFT JOIN work b on a.id=b.user_id
  </select>
  <select id="pageList" resultMap="BaseResultMap2">
    select a.id id,a.name name,a.age age,a.email email,b.position position,b.user_id user_id from user a LEFT JOIN work b on a.id=b.user_id
  </select>

10.這樣就基本完成了!我這里省略了實體類

我們運行一下,用postman測試一下結果
這里我們需要傳2個參數,當然我們也可以不用傳,因為mybatis-plus有默認值
來看下mybatis-plus的page源碼

如何在springboot中使用mybatis-plus實現一個多表分頁查詢功能

效果圖:

如何在springboot中使用mybatis-plus實現一個多表分頁查詢功能

如何在springboot中使用mybatis-plus實現一個多表分頁查詢功能

關于如何在springboot中使用mybatis-plus實現一個多表分頁查詢功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大荔县| 仪陇县| 越西县| 南乐县| 名山县| 大英县| 东辽县| 金山区| 屏山县| 常山县| 东乡县| 溧水县| 富平县| 故城县| 福建省| 隆尧县| 莲花县| 平谷区| 和政县| 石狮市| 铜川市| 抚宁县| 太湖县| 静乐县| 长阳| 元朗区| 杭锦后旗| 辽宁省| 阿克陶县| 梅州市| 武陟县| 大洼县| 武山县| 城固县| 尤溪县| 土默特左旗| 榕江县| 高碑店市| 德令哈市| 延津县| 马尔康县|