SSMP框架实体类和数据层快速开发
本章节基于SSMP框架实现实体类和数据层快速开发
前言
什么是实体类和数据层?
实体类就是一个载体,现在的设计差不多都是一张表就等于业务里面的一个类。一条记录(一般一行数据)是一个对象,一行中的一列就是这个对象的一个属性。所以我们在操作某个表时(比如更改这个表的信息),我们就可以在前台定义一个这样的对象,然后将其对应的属性赋值,然后传到后台。
数据层也是DAO层,DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。
一、实体类的开发
首先我们先创建一个domain包,domain包下创建Book类,接下来我介绍一下一款快速开发实体类的工具Lombok
Lombok,一个Java类库,提供了一组注解,简化POJO实体类开发。
这是Lombok的坐标
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
在我们已经创建好的实体类中最前面加上注解@Data
package com.jikebensan.book.domain;
import lombok.Data;
@Data
public class Book {
private Integer id;
private String type;
private String name;
private String description;
}
@Data为当前实体类在编译期设置对应的get/set方法,toString方法,hashCode方法,equals方法等,这些方法不用手动添加了
二、数据层的开发
MyBatisPlus和Druid
数据层我们用到的技术是MyBatisPlus和Druid
首先我们先导入MyBatisPlus与Druid对应的starter坐标
//MyBatisPlus坐标
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
//Druid坐标
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
yml文件
接着我们再配置yml文件(端口号,连接数据库四大要素,MP配置)
server:
port: 8080
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/pby?serverTimezone=UTC
username: root
password: root
mybatis-plus:
global-config:
db-config:
table-prefix:
id-type: auto
接下来我们再创建dao包,dao包下创建BookDao接口
其中BookDao继承了MP给我们提供的BaseMapper,这样我们的数据层就完成搭建
BookDao接口
package com.jikebensan.book.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jikebensan.book.domain.Book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface BookDao extends BaseMapper<Book>{
}
那么本应该写抽象方法(数据库的增删改查方法)的BookDao接口为什么只用写一个继承BaseMapper?
我们直接打开BaseMapper看看就知道了。
原来如此,MP已经帮我们写好了CRUD的方法,请把国产MP牛批打在公屏上。
测试环节
上面已经快速开发了数据层和实体类,接下来我们就可以测试一下了
测试代码
package com.jikebensan.book;
import com.jikebensan.book.dao.BookDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class BookApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void test1() {
bookDao.selectById(3);
}
}
实现查询数据库中id为3的图书信息
控制台成功打印出来id为3的书本信息。
明天我会继续更新SSMP框架的业务层和表现层的开发