MyBatisPlus的实用学习

官网
ORM:数据 student(no,name) <====> 对象 Student(SNo,SName)
MyBatis +MybatisPlus :只做增强,不做改变

创建工程及导入依赖

  • 用阿里的springboot脚手架
    在这里插入图片描述
  • 导入依赖(按顺序位置放到阿里脚手架生成pom.xml中)
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>   //依赖的另一个包没有lombok的兼容
            <version>1.18.4</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
    </dependencies>

编写application.properties文件

  • 我用的是远程连接我的阿里云服务器给我的公网ip,连接不上可能防火墙没开,端口没开,或者datasoruce.username和password不对,再或者二个root后有空格
spring.application.name=itcast-mybatis-plus
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost/haoke?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false 
spring.datasource.username=root|后面不要有空格
spring.datasource.password=root|后面不要有空格
#指定全局配置文件
mybatis-plus.config-location=classpath:mybatis-config.xml
#指定mapper.xml文件
mybatis-plus.mapper-locations=classpath*:mybatis/*.xml

创建User对象

package cn.itcast.mybatisplus.pojo;

public class User {
    @TableId(value = "ID",type = IdType.AUTO)  //id自增长
    private Long id;
    private String name;
    private Integer age;
    private String email;

    public User() {

    }
    public User(Long id, String name, Integer age, String email) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.email = email;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", email='" + email + '\'' +
                '}';
    }
}

编写UserMapper

package cn.itcast.mybatisplus.mapper; 
import cn.itcast.mybatisplus.pojo.User; 
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 
public interface UserMapper extends BaseMapper<User> { }

编写SpringBoot启动类

package cn.itcast.mybatisplus;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("cn.itcast.mybatisplus.mapper") //设置mapper接口的扫描包
@SpringBootApplication
public class MyApplication {
/*
    分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor(){
        return new PaginationInterceptor();
    }
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

编写测试单元

package cn.itcast.mybatisplus.mapper;

import cn.itcast.mybatisplus.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelect(){
        List<User> users = this.userMapper.selectList(null);
        for (User user : users) {
            System.out.println(user);
        }
    }
    @Test
    public void testSelectById(){
        User user = this.userMapper.selectById(3L);
        System.out.println(user);
    }

    @Test  //姓名模糊中有o 字母的
    public void testSelectByLike(){
        QueryWrapper<User> tWrapper =new QueryWrapper<User>();
        tWrapper.like("name","o");
        List<User> users = this.userMapper.selectList(tWrapper);
        for (User user : users) {
            System.out.println(user);
        }
    }

    @Test  //年龄小于20
    public void testSelectByLe(){
        QueryWrapper<User> tWrapper =new QueryWrapper<User>();
        tWrapper.le("age",20);
        List<User> users = this.userMapper.selectList(tWrapper);
        for (User user : users) {
            System.out.println(user);
        }
    }

    @Test  //
    public void testSave(){
        User user = new User();
        user.setAge(25);
        user.setEmail("zhangsan@qq.com");
        user.setName("张三");
        int insert = this.userMapper.insert(user);
        System.out.println("数据掺入成功! count=>"+insert);

    }

    @Test  //
    public void testDelete(){
        this.userMapper.deleteById(6L);
        System.out.println("数据删除成功!>");
    }

    @Test  //根据id修改,修改不为null的字段
    public void testUpdate(){
        User user = new User();
        user.setId(5L);
        user.setName("l李四");
        this.userMapper.updateById(user);
        System.out.println("数据修改成功!>");
    }

    @Test
    public void testSelectPage(){
        Page<User> page = new Page<>(2, 3);
        Page<User> userPage = this.userMapper.selectPage(page,null);
        System.out.println("总条数 ----->"+userPage.getTotal());
        System.out.println("当前页数----->"+userPage.getCurrent());
        System.out.println("当前每页显示条数-->"+userPage.getSize());
        List<User> records = userPage.getRecords();
        for (User record : records) {
            System.out.println(record);
        }
    }
}

在这里插入图片描述

Lombok,lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码,尤其是针对pojo,在MybatisPlus中使用lombok。pom.xml安装依赖和idea本身的lombok插件

  • @Data:注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
  • @Setter:注解在属性上;为属性提供 setting 方法
  • @Getter:注解在属性上;为属性提供 getting 方法
  • @Slf4j:注解在类上;为类提供一个 属性名为log 的 slf4j日志对象
  • @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
  • @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
  • @Builder:使用Builder模式构建对象
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值