栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

从mybatis飞越到mybatis-plus

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从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等方法,拥有了这个技巧以后,我们的开发过程就是下面这样的:

实体类:

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 {
  
}

Service层
接口

package com.service;

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

public interface adminService extends IService {
  
}

实现类

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 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层




    


麻雀虽小,五脏俱全,上面的代码看到什么也没有,但是他已经实现了基本的增删改查方法啊,是不是一下子就爱上了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 检查配置文件里面的实体类是否映射正确:


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

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

然后需要注意三个地方就可以正常测试了:




可以看到数据被成功取出来了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/763324.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号