Mybatis-Plus:Mybatis-Plus简单demo及其核心功能

一: 简单demo

第一步:打开Mybatis-Plus官网:mybatis-plus官网,点击快速开始选择springboot版本,于是我们就愉快地开始了。
官网pom文件:
在这里插入图片描述
官网yml文件配置:
在这里插入图片描述
那就是搞定这两个,我们就等于搞定了mybatis-plus入门了。
第二部:建立demo

  1. 首先得有数据库还有数据
    数据库:这是我的库,我的表,还有我的数据
    在这里插入图片描述
  2. 引入依赖,项目是springboot项目,所以我们需要的依赖有:spring-boot-starter;mysql-connect;mybatis-plus-spring-boot-starter,好了就这三个
		//springboot启动	
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        //数据库连接
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        //不想写getter,setter
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.6</version>
        </dependency>
        //mybatis-plus
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>
        //测试用
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
  1. 写接口并配置
    根据官网来看,我们一个bean,一个接口,再来一个配置就收工
    demo包结构:
    在这里插入图片描述
    pojo:
@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

接口:

//加注解目的在于测试的时候消除报警,不加注解也没事
@Repository
public interface UserMapper extends BaseMapper<User> {
}

配置:我们从官网给的配置来看,我们需要的配置datasource配置(四件套),mapper的位置,entity的位置。于是乎,

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    password: root
    username: root
    url: jdbc:mysql://127.0.0.1:3306/mybatisplus
    //申明实体类的位置,不配置也可以
mybatis-plus:
  typeAliasesPackage: com.lll.mybatisplusdemo.pojo

这上面还差一个mapper位置,于是乎

@SpringBootApplication
//mapper包位置
@MapperScan("com.lll.mybatisplusdemo.mapper")
public class MybatisplusDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisplusDemoApplication.class, args);
    }

}

写个测试类收工:

@RunWith(SpringRunner.class)
@SpringBootTest
public class MybatisplusDemoApplicationTests {
    @Autowired
    UserMapper userMapper;

    @Test
    public void text() {
        List<User> users = userMapper.selectList(null);
        users.forEach((user)->{System.out.println(user);});
    }

}

二:mybatis-plus的核心功能

我们从官网一看,核心功能有五:curd接口就没啥好说了,用的时候研究一下,主要还是看一下代码生成器,条件构造器和分页插件吧。
在这里插入图片描述

2.1 代码生成器

这东西说直白的就是根据我们提供的数据库名和表名使用 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码。


public class CodeGenerator {

    public static String scanner(String tip) {
        Scanner scanner = new Scanner(System.in);
        StringBuilder help = new StringBuilder();
        help.append("请输入" + tip + ":");
        System.out.println(help.toString());
        if (scanner.hasNext()) {
            String ipt = scanner.next();
            if (StringUtils.isNotEmpty(ipt)) {
                return ipt;
            }
        }
        throw new MybatisPlusException("请输入正确的" + tip + "!");
    }

    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        //获得当前目录的根目录地址
        String projectPath = System.getProperty("user.dir");
        //输出地址,值为项目java包的地址
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("lll"); //作者
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/mybatisplus");
        dsc.setDriverName("com.mysql.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName(scanner("模块名"));
        //父包名
        pc.setParent("com.lll.mybatisplusdemo");
        mpg.setPackageInfo(pc);


        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        // 需要生成的表
        strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
        mpg.setStrategy(strategy);

        mpg.execute();
    }

}

结合官网文档试验了一下,拿出一个较为简单的案例,可以直接用,需要修改的地方。

  pc.setParent("com.lll.mybatisplusdemo");
  //还有就是数据库的用户名和密码了

2.2 条件构造器

如果说有用过器通用mapper的话,官网一看,我靠,一家子的,都是建立一个容器,给容器添加条件,最后运行容器去查询

基于前面demo的查询:

    @Test
    public void test(){
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.eq("name","jack");
        List<User> users = userMapper.selectList(wrapper);
        System.out.println(users);
    }

这是一个简答的例子,剩余的也差不多,官网明明白白,有需要去看看,你这么多
在这里插入图片描述

三:分页插件

第一步:将bean添加到容器中,方法卸载启动类下

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

第二步:调用page对象

    public void test3(){
        Page<User> page = new Page<>();
        page.setSize(2);
        page.setCurrent(0);
        IPage<User> userIPage = this.userMapper.selectPage(page, null);
        //总页数
        long pages = userIPage.getPages();
        //总数据条数
        long total = userIPage.getTotal();
        //当前页数
        long current = userIPage.getCurrent();
        //每页数据量
        long size = userIPage.getSize();

        List<User> records = userIPage.getRecords();
        records.forEach((user)->{System.out.println(user);});

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值