数据封装工具类
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;
}
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 {
public static Result getSuccessResult() {
return getSuccessResult("", Constants.SUCCESS_MSG,Constants.RESULT_CODE_SUCCESS);
}
public static Result getSuccessResult(Object data) {
return getSuccessResult(data,Constants.SUCCESS_MSG,Constants.RESULT_CODE_SUCCESS);
}
public static Result getSuccessResult(Object data,String msg) {
return getSuccessResult(data,msg,Constants.RESULT_CODE_SUCCESS);
}
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;
}
public static Result getFailResult() {
return getFailResult("", Constants.FAIL_MSG,Constants.RESULT_CODE_FAIL);
}
public static Result getFailResult(Object data) {
return getFailResult(data,Constants.FAIL_MSG,Constants.RESULT_CODE_FAIL);
}
public static Result getFailResult(Object data,String msg) {
return getFailResult(data,msg,Constants.RESULT_CODE_FAIL);
}
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;
}
}
分页工具类
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;
private int limit=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);
}
}
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;
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);
}
}
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-starter
、mybatis-plus-generator
、freemarker
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);
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);
String templatePath = "/templates/mapper.xml.ftl";
List<FileOutConfig> focList = new ArrayList<>();
focList.add(new FileOutConfig(templatePath) {
@Override
public String outputFile(TableInfo tableInfo) {
return projectPath + "/src/main/resources/mapper/" + pc.getModuleName() + "/"
+ tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
strategy.setTablePrefix(tablePrefix);
strategy.setControllerMappingHyphenStyle(true);
mpg.setStrategy(strategy);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
}
}
SHA256加密
public class ShaUtil {
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;
}
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){
stringBuffer.append("0");
}
stringBuffer.append(temp);
}
return stringBuffer.toString();
}
}