又是悲喜交加的一天 ,悲伤的是 解决了一天的 bug ,高兴的是,bug解决了,发现了曾经没发现的小tips 下面请听我娓娓道来
曾经你无数次徘徊在增删改查的过程中 你的步骤是 这样的
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<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的使用过程中需要注意什么问题额,
空指针问题保证是我们在开发道路上碰到的最讨厌的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
mybatis-plus:
type-aliases-package: com.pojo
mapper-locations: classpath:mapper/*.xml
configuration:
lazy-loading-enabled: true #打开懒加载
aggressive-lazy-loading: false #关闭积极懒加载
java.lang.NullPointerException
at com.dudu.UserServiceImplTest.create(UserServiceImplTest.java:24)
生成测试类一般是在service层生成:
在该层 按快捷键 Ctrl shift T
然后需要注意三个地方就可以正常测试了: