All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pugwoo.dbhelper.impl.DBHelperContext Maven / Gradle / Ivy

package com.pugwoo.dbhelper.impl;

import java.util.HashMap;
import java.util.Map;

/**
 * DBHelper线程上下文,支持: 
* 1. 自定义表名
* 2. 开启和关闭指定DO类的软删除
* 3. 线程级别的SQL注释 */ public class DBHelperContext { /**自定义表名,适合于分表场景*/ private static final ThreadLocal, String>> tableNames = new ThreadLocal<>(); /**关闭软删除*/ private static final ThreadLocal, Boolean>> turnOffSoftDelete = new ThreadLocal<>(); private static final ThreadLocal comment = new ThreadLocal<>(); /** * 获得类对应的自定义表名,不存在返回null */ public static String getTableName(Class clazz) { Map, String> tableNames = DBHelperContext.tableNames.get(); if(tableNames == null) { return null; } return tableNames.get(clazz); } /** * 设置类对应的自定义表名 * @param tableName 不需要加反引号` */ public static void setTableName(Class clazz, String tableName) { if(clazz == null || tableName == null) { return; } tableName = tableName.trim(); if(tableName.isEmpty()) { return; } Map, String> tableNames = DBHelperContext.tableNames.get(); if(tableNames == null) { tableNames = new HashMap<>(); DBHelperContext.tableNames.set(tableNames); } tableNames.put(clazz, tableName); } /** * 清空自定义表名 */ public static void resetTableName() { tableNames.set(null); } /** * 查询指定类是否关闭了软删除 */ public static boolean isTurnOffSoftDelete(Class clazz) { if (clazz == null) { return false; } Map, Boolean> turnoff = turnOffSoftDelete.get(); if(turnoff == null) { return false; } Boolean b = turnoff.get(clazz); return b != null && b; } /** * 关闭指定类的软删除设置,仅对当前线程有效 */ public static void turnOffSoftDelete(Class clazz) { if (clazz == null) { return; } Map, Boolean> turnoff = turnOffSoftDelete.get(); if(turnoff == null) { turnoff = new HashMap<>(); turnOffSoftDelete.set(turnoff); } turnoff.put(clazz, true); } /** * 打开指定类的软删除设置 */ public static void turnOnSoftDelete(Class clazz) { if (clazz == null) { return; } Map, Boolean> turnoff = turnOffSoftDelete.get(); if(turnoff == null) { return; } turnoff.remove(clazz); } /** * 设置线程上下文的SQL注释 */ public static void setComment(String comment) { DBHelperContext.comment.set(comment); } /** * 获取线程上下文的SQL注释 */ public static String getComment() { return DBHelperContext.comment.get(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy