springboot自己常用的工具类

数据封装工具类

  • Result
  • 需要下载lombok插件和导入依赖
import java.io.Serializable;

import lombok.Data;

@Data
public class Result implements Serializable{
    private static final long serialVersionUID = -6691656851198107463L;
    private int status;
    private String msg;
    private Object data;
}
  • 自定义常量Constants
public class Constants {
    public static final int RESULT_CODE_SUCCESS = 200;
    public static final String SUCCESS_MSG = "SUCCESS";

    public static final int RESULT_CODE_FAIL = 400;
    public static final String FAIL_MSG = "FAIL";
}
  • ResultGenerator 对返回的数据格式进行封装
public class ResultGenerator {

    /**
     * 
     * @return 默认成功信息 (data=null, msg = SUCCESS , status = 200)
     */
    public static Result getSuccessResult() {
        return getSuccessResult("", Constants.SUCCESS_MSG,Constants.RESULT_CODE_SUCCESS);
    }

    /**
     * 
     * @return 带数据的成功信息 (data=data, msg = SUCCESS , status = 200)
     */
    public static Result getSuccessResult(Object data) {
        return getSuccessResult(data,Constants.SUCCESS_MSG,Constants.RESULT_CODE_SUCCESS);
    }

    /**
     * 
     * @return (data=data, msg = msg , status = 200)
     */
    public static Result getSuccessResult(Object data,String msg) {
        return getSuccessResult(data,msg,Constants.RESULT_CODE_SUCCESS);
    }

     /**
     * 
     * @return (data=data, msg = msg , status = 200)
     */
    public static Result getSuccessResult(Object data,String msg,int code) {
        Result result = new Result();
        result.setData(data);
        result.setStatus(code);
        result.setMsg(msg);
        return result;
    }

     /**
     * 
     * @return 默认成功信息 (data=null, msg = FAIL , status = 400)
     */
    public static Result getFailResult() {
        return getFailResult("", Constants.FAIL_MSG,Constants.RESULT_CODE_FAIL);
    }

    /**
     * 
     * @return 带数据的成功信息 (data=data, msg = FAIL , status = 400)
     */
    public static Result getFailResult(Object data) {
        return getFailResult(data,Constants.FAIL_MSG,Constants.RESULT_CODE_FAIL);
    }

    /**
     * 
     * @return (data=data, msg = msg , status = 400)
     */
    public static Result getFailResult(Object data,String msg) {
        return getFailResult(data,msg,Constants.RESULT_CODE_FAIL);
    }

     /**
     * 
     * @return (data=data, msg = msg , status = 400)
     */
    public static Result getFailResult(Object data,String msg,int code) {
        Result result = new Result();
        result.setData(data);
        result.setStatus(code);
        result.setMsg(msg);
        return result;
    }
}

分页工具类

  • PageUtil 分页查询参数封装
import java.util.LinkedHashMap;
import java.util.Map;
import lombok.Data;

@Data
public class PageUtil extends LinkedHashMap<String, Object> {
    private static final long serialVersionUID = 6266971646743089177L;
    private int page=1;   // 当前页码 默认值为1
    private int limit=3;      // 每页条数 默认值为3

    public PageUtil(Map<String, Object> params) {
        this.putAll(params); // 需要将携带的参数继续传递下去
        if(!StringUtils.isEmpty(params.get("page"))){
            this.page = Integer.parseInt(params.get("page").toString());
        }
        if(!StringUtils.isEmpty(params.get("limit"))){
            this.limit = Integer.parseInt(params.get("limit").toString());
        }
        //分页参数
        this.put("start", (page - 1) * limit);
        this.put("page", page);
        this.put("limit", limit);
    }
}
// 使用Mybatis sql 最后写的:  limit #{start},#{limit} ; 
  • PageResult 封装分页查询后的结果
import java.util.List;
import lombok.Data;

@Data
public class PageResult  {

    private int totalCount; //总记录数
    private int pageSize; //每页记录数
    private int totalPage;//总页数
    private int currPage;//当前页数
    private List<?> list;//列表数据
    /**
     * 分页
     * @param list       列表数据
     * @param totalCount 总记录数
     * @param pageSize   每页记录数
     * @param currPage   当前页数
     */
    public PageResult(List<?> list, int totalCount, int pageSize, int currPage) {
        this.list = list;
        this.totalCount = totalCount;
        this.pageSize = pageSize;
        this.currPage = currPage;
        this.totalPage = (int) Math.ceil((double) totalCount / pageSize);
    }
}

  • service层使用
public PageResult queryUsers(PageUtil pageUtil) {
        List<User> users = userMapper.getLists(pageUtil);
        int total = userMapper.getTotal(pageUtil);
        PageResult pageResult = new PageResult(users, total, pageUtil.getLimit(), pageUtil.getPage());
        return pageResult;
    }

Mybatis-plus 代码生成器

  • 相关依赖:mybatis-plus-boot-startermybatis-plus-generatorfreemarker
import java.util.ArrayList;
import java.util.List;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.FileOutConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

public class CodeGeneratorUtil {

    public static void main(String[] args) {
        // 定义临时需要用到的数据
        String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Asia/Shanghai";
        String parentName ="com.antrain.vuedemo";
        String tablePrefix = "";
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();
        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("antrain");
        gc.setOpen(false);
        // gc.setSwagger2(true); 实体属性 Swagger2 注解
        mpg.setGlobalConfig(gc);
        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl(url);
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("654321");
        mpg.setDataSource(dsc);
        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent(parentName);
        mpg.setPackageInfo(pc);
        // 如果模板引擎是 freemarker
        String templatePath = "/templates/mapper.xml.ftl";
        // 自定义输出配置
        List<FileOutConfig> focList = new ArrayList<>();
        // 自定义配置会被优先输出
        focList.add(new FileOutConfig(templatePath) {
            @Override
            public String outputFile(TableInfo tableInfo) {
                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
                return projectPath + "/src/main/resources/mapper/" + pc.getModuleName() + "/"
                        + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
            }
        });
        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        // 将 user_role 转成UserRole 表名
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        // 使用lombok
        strategy.setEntityLombokModel(true);
        // 使用@RestController 注解
        strategy.setRestControllerStyle(true);
        // 生成表名时去除前缀
        strategy.setTablePrefix(tablePrefix);
        // 生成哪些表的实体类,默认全部
        // strategy.setInclude();
        strategy.setControllerMappingHyphenStyle(true);
        mpg.setStrategy(strategy);
        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
        mpg.execute();
    }
}

SHA256加密

public class ShaUtil {
    /**
     * 利用java原生的摘要实现SHA256加密
     * @param str 加密后的报文
     */
    public static String getSHA256(String str){
        MessageDigest messageDigest;
        String encodeStr = "";
        try {
            messageDigest = MessageDigest.getInstance("SHA-256");
            messageDigest.update(str.getBytes("UTF-8"));
            encodeStr = byte2Hex(messageDigest.digest());
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return encodeStr;
    }
    /**
     * 将byte转为16进制
     * @param bytes
     */
    private static String byte2Hex(byte[] bytes){
        StringBuffer stringBuffer = new StringBuffer();
        String temp = null;
        for (int i=0;i<bytes.length;i++){
            temp = Integer.toHexString(bytes[i] & 0xFF);
            if (temp.length()==1){
                //1得到一位的进行补0操作
                stringBuffer.append("0");
            }
            stringBuffer.append(temp);
        }
        return stringBuffer.toString();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值