从mybatis飞越到mybatis-plus

又是悲喜交加的一天 ,悲伤的是 解决了一天的 bug ,高兴的是,bug解决了,发现了曾经没发现的小tips 下面请听我娓娓道来

1 问题描述 :mybatis-plus有什么好处呢?

曾经你无数次徘徊在增删改查的过程中 你的步骤是 这样的

1 写实体类
2 写dao层
3 写service层
4写controller层
5写配置文件-mapper.xml

那么好,一个类你是如此,那么十个类呢,要写多少增删改查,把黄金时间全部浪费在了写没有意义的代码上。

现在 我们去掉过渡的 tk-mybatis, 上升到mybatis-plus ,简称 MP ,那么MP的好处有哪些呢,内置了增删改查,内置了查id等方法,拥有了这个技巧以后,我们的开发过程就是下面这样的:
从mybatis飞越到mybatis-plus_第1张图片

实体类:

package com.pojo;

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;
import lombok.experimental.Accessors;

import java.io.Serializable;

@Data
@Accessors(chain = true) //用来开启链式编程,简化开发过程,不用太繁琐的单调 set  get方法
@TableName("admin")
public class admin implements Serializable {

    @TableId(type = IdType.AUTO)
    private long id;//自增主键要设置long
    @TableField("adminPassword")
    private String password;
    @TableField("adminName")
    private String name;
    @TableField("adminSex")
    private String sex;
    @TableField("adminTel")
    private String Tele;

}

DAO(Mapper层)

package com.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pojo.admin;



public interface adminMapper extends BaseMapper<admin> {
  
}

Service层
接口

package com.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pojo.admin;

public interface adminService extends IService<admin> {
  
}

实现类

package com.service.impl;


import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dao.adminMapper;
import com.pojo.admin;
import com.service.adminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;



@Service
public class adminServiceImpl extends ServiceImpl<adminMapper,admin> implements adminService {
 @Autowired
 private adminMapper adminMapper;


}

controller层

package com.controller;

import com.dao.adminMapper;
import com.pojo.admin;
import com.service.adminService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class loginController {

   @Autowired
    private adminService adminService;

   @RequestMapping("in")
   public void add(){
       admin a=new admin().setName("ll").setPassword("123").setSex("nv").setTele("138");
      boolean flag =adminService.save(a);
       System.out.println(flag);
    }
    @RequestMapping("out")
   public void sele(){
       admin a=new admin();
        adminService.removeById(10003);
       System.out.println(a);
   }

}

mapper.xml层

<?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.dao.adminMapper">
    
</mapper>

麻雀虽小,五脏俱全,上面的代码看到什么也没有,但是他已经实现了基本的增删改查方法啊,是不是一下子就爱上了MP。

那么在MP的使用过程中需要注意什么问题额,

1 MP开发出现空指针问题:

空指针问题保证是我们在开发道路上碰到的最讨厌的bug了,常常让人摸不着头脑

1 检查数据库是否链接,

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/tyust_face?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: root

2 检查配置文件里面的实体类是否映射正确:

从mybatis飞越到mybatis-plus_第2张图片
从mybatis飞越到mybatis-plus_第3张图片

3 检查 配置文件是否正确配置:

从mybatis飞越到mybatis-plus_第4张图片

mybatis-plus:
  type-aliases-package: com.pojo
  mapper-locations: classpath:mapper/*.xml
  configuration:
    lazy-loading-enabled: true #打开懒加载
    aggressive-lazy-loading: false #关闭积极懒加载

4生成单元测试类的时候一直报空指针错误

java.lang.NullPointerException
at com.dudu.UserServiceImplTest.create(UserServiceImplTest.java:24)
生成测试类一般是在service层生成:
在该层 按快捷键 Ctrl shift T
从mybatis飞越到mybatis-plus_第5张图片
然后需要注意三个地方就可以正常测试了:

从mybatis飞越到mybatis-plus_第6张图片
从mybatis飞越到mybatis-plus_第7张图片
从mybatis飞越到mybatis-plus_第8张图片
可以看到数据被成功取出来了。

你可能感兴趣的:(SpringBoot,java,java-ee,intellij-idea)