快速搭建springboot + mybatisplus

1.搭建springboot项目,这块可以在网上找,搭建最简单的springboot就行,可以用idea的springinitianizr构建,如图

创建完后,引入dependency

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web-services</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

application.yml

server:
  port: 8088
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/zcy?serverTimezone=Asia/Shanghai
    username: root
    password: 123456

application.properties

mybatis-plus.global-config.db-config.table-prefix=t_
mybatis-plus.generator.author=author
mybatis-plus.generator.file-out-impl=org.mybatis.generator.internal.DefaultFileOutput
mybatis-plus.generator.template-path=classpath:/templates/mapper
mybatis-plus.generator.file-overwrite=true
mybatis-plus.generator.xml-disabled=true
mybatis-plus.generator.jdbc.driverClass=${spring.datasource.driver-class-name}
mybatis-plus.generator.jdbc.url=${spring.datasource.url}
mybatis-plus.generator.jdbc.userId=${spring.datasource.username}
mybatis-plus.generator.jdbc.password=${spring.datasource.password}
mybatis-plus.mapper-locations=classpath*:resources/mapper/*.xml

建表

CREATE TABLE `t_user_account` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `user_name` varchar(100) DEFAULT NULL COMMENT '用户名',
  `user_email` varchar(30) DEFAULT NULL COMMENT '邮箱',
  `account` varchar(30) DEFAULT NULL COMMENT '账号',
  `password` varchar(100) DEFAULT NULL COMMENT '密码',
  `organize_id` int DEFAULT NULL COMMENT '部门ID',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB

entity

package com.example.mybatisplusdemo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

/**
 * @author : 
 * @date : 2024/5/12 20:25
 * @description :
 **/
@Data
@TableName("t_user_account")
public class UserAccount {

    @TableId(type = IdType.AUTO)
    private Long id;

    @TableField("user_name")
    private String userName;

    @TableField("user_email")
    private String userEmail;

    @TableField("password")
    private String password;

    @TableField("account")
    private String account;

    @TableField("organize_id")
    private Long organizeId;
}

mapper接口

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.mybatisplusdemo.entity.UserAccount;
import org.apache.ibatis.annotations.Mapper;

/**
 * @author : 
 * @date : 2024/5/12 20:24
 * @description :
 **/
@Mapper
public interface UserAccountMapper extends BaseMapper<UserAccount> {
    
}

IService 接口

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.mybatisplusdemo.dto.UserAccountDTO;
import com.example.mybatisplusdemo.entity.UserAccount;

/**
 * @author : 
 * @date : 2024/5/12 20:31
 * @description :
 **/
public interface IUserAccountService extends IService<UserAccount> {

   
}

接口实现类

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.mybatisplusdemo.entity.UserAccount;
import com.example.mybatisplusdemo.mapper.UserAccountMapper;
import com.example.mybatisplusdemo.service.IUserAccountService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @author : zhangcaiyun
 * @date : 2024/5/12 20:33
 * @description :
 **/
@Service
public class UserAccountServiceImpl extends ServiceImpl<UserAccountMapper, UserAccount> implements IUserAccountService {

}

新增记录可以直接如下调用

userAccountService.save(account);

在做一个分页查询,在接口中新增如下接口

    public Page<UserAccount> selectPage(int currentPage,pageSize) {
        Page<UserAccount> page = new Page<>(currentPage, pageSize);
        QueryWrapper<UserAccount> queryWrapper = new QueryWrapper<>();
        Page<UserAccount> userAccountPage = userAccountMapper.selectPage(page, queryWrapper);
        return userAccountPage;
    }

调用后userAccountPage数据如下

{
	"records": [{
			"id": 1,
			"userName": "zhangcaiyun",
			"userEmail": "zhangcaiyun@sina.cn",
			"password": "123456",
			"account": "c410230",
			"organizeId": 1111
		},
		{
			"id": 2,
			"userName": "zhangcaiyun",
			"userEmail": "zhangcaiyun@sina.cn",
			"password": "123456",
			"account": "c410230",
			"organizeId": 1111
		},
		{
			"id": 3,
			"userName": "zhangcaiyun",
			"userEmail": "zhangcaiyun@sina.cn",
			"password": "123456",
			"account": "c410230",
			"organizeId": 1111
		}
	],
	"total": 0,
	"size": 10,
	"current": 1,
	"orders": [],
	"optimizeCountSql": true,
	"hitCount": false,
	"countId": null,
	"maxLimit": null,
	"searchCount": true,
	"pages": 0
}

问题,可以发现可以正常的返回数据了,但是total和pages确是0。

解决mybatis-plus中分页查询返回有记录,但total和pages却为0的问题。

1.新增如下依赖

<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-extension</artifactId>
            <version>3.4.2</version>
        </dependency>

2.新增配置类


import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

import javax.sql.DataSource;

/**
 * @author : 
 * @date : 2024/5/12 21:56
 * @description :
 **/
@Configuration
public class MybatisPlusConfig {

    @Bean("mybatisPlusInterceptor")
    public MybatisPlusInterceptor getInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return mybatisPlusInterceptor;
    }
}

3.启动后再次查询返回如下

{
	"records": [{
			"id": 1,
			"userName": "zhangcaiyun",
			"userEmail": "zhangcaiyun@sina.cn",
			"password": "123456",
			"account": "c410230",
			"organizeId": 1111
		},
		{
			"id": 2,
			"userName": "zhangcaiyun",
			"userEmail": "zhangcaiyun@sina.cn",
			"password": "123456",
			"account": "c410230",
			"organizeId": 1111
		},
		{
			"id": 3,
			"userName": "zhangcaiyun",
			"userEmail": "zhangcaiyun@sina.cn",
			"password": "123456",
			"account": "c410230",
			"organizeId": 1111
		}
	],
	"total": 3,
	"size": 10,
	"current": 1,
	"orders": [],
	"optimizeCountSql": true,
	"hitCount": false,
	"countId": null,
	"maxLimit": null,
	"searchCount": true,
	"pages": 1
}

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值