如何自己做一个拥有增删改除以及分页的jar工具包

前言

在日常的开发中,我们写的大部分程序以及系统,基本都需要增删改除以及分页的功能。而正因为大部分的功能都具有重复性,很多人在写代码的过程中,基本在做这些功能的时候,把重复的代码简单地复制粘贴就完事了。其实,不知道大家有没有想过。把些功能的实现做为一个工具包的样子,这样把它加入我们自建的仓库中,是不是就可以免除了重复写的过程,当我们以后再写的时候,直接写接口就可以了,这是不是比以前重复写简单很多了,好了,不逼逼,我们正式进入话题。

1、创建maven项目,在maven项目的pom.xml 中配置相应的依赖,例如我建立了一个如下图的项目

在这里插入图片描述

2、配置相应的pom.xml 文件

这个可以直接复制下面的文件里面的依赖到自己的pom.xml文件里面就可以了。

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.qf.2002</groupId>
    <artifactId>qf-base</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>7</source>
                    <target>7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.10</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
        </dependency>
    </dependencies>
    </project >

3、建立如下的项目文件

在这里插入图片描述

4、具体的代码

IBaseDao.java

package com.qf.base.dao;

import java.util.List;

public interface IBaseDao<T> {
    
    

    /**
     * 插入操作
     * @param t 被插入的对象
     * @return 影响的行数
     */
    public int insert(T t);

    public int update(T t);

    /**
     * 删除操作
     * @param id 被删除的id
     * @return 响应的行数
     */
    public int delete(Integer id);

    /**
     * 根据id查询对象
     * @param id 查询的id
     * @return 对象
     */
    public T selectById(Integer id);

    /**
     * 分页的擦洗混
     * @return 集合
     */
    public List<T> selectList();

    /**
     * 查询全部
     * @param <T>
     * @return
     */
    <T> List<T> getAll();
}

Page.java

package com.qf.base.entity;

import lombok.Data;

@Data
public class Page {
    
    

    private Integer pageNum = 1;

    private Integer pageSize = 5;
}

BaseServiceImpl.java

package com.qf.base.service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.qf.base.dao.IBaseDao;
import com.qf.base.entity.Page;

import java.util.List;

public abstract class BaseServiceImpl<T> implements IBaseService<T> {
    
    

    // 这个baseDao需要子类来来实例化
    protected abstract IBaseDao<T> baseDao();// ?需不需要实例化

    @Override
    public int insert(T t) {
    
    
        return baseDao().insert(t);
    }

    @Override
    public int update(T t) {
    
    

        return baseDao().update(t);
    }

    @Override
    public int delete(Integer id) {
    
    
        return baseDao().delete(id);
    }

    @Override
    public T selectById(Integer id) {
    
    
        return baseDao().selectById(id);
    }

    @Override
    public PageInfo<T> selectPage(Page page) {
    
    

        // 1.开启分页查询
        PageHelper.startPage(page.getPageNum(),page.getPageSize());

        // 2.查询当前页的数据
        List<T> pageHub = baseDao().selectList();

        // 3.把page转成PageInfo
        return new PageInfo<>(pageHub);

    }

    @Override
    public List<T> getALl() {
    
    
        return baseDao().getAll();
    }
}

IBaseService

package com.qf.base.service;

import com.github.pagehelper.PageInfo;
import com.qf.base.entity.Page;

import java.util.List;

public interface IBaseService<T> {
    
    

    public int insert(T t);

    public int update(T t);

    public int delete(Integer id);

    public T selectById(Integer id);

    public PageInfo<T> selectPage(Page page);

    public List<T> getALl();

}

猜你喜欢

转载自blog.csdn.net/weixin_43501566/article/details/107870436