类 EntityHelper

java.lang.Object
net.sohelp.boot.engine.db.EntityHelper

@Component public class EntityHelper extends Object
实体服务类

相关事件之前执行 EntityHelper.use("default").beforeExecuteEvent(entityName,dataMap); 根据事件配置之后执行进行 EntityHelper.use("default").afterExecuteEvent(entityName,dataMap); 根据实体配置的公式进行执行计算 EntityHelper.use("default").formula(entityName,dataMap); 根据实体数据初始化 EntityHelper.use("default").initial(entityName,dataMap); 根据实体数据格式 EntityHelper.use("default").validate(entityName,dataMap); 脚本生成 EntityHelper.use("default").dll(entityName); SQL语句执行 EntityHelper.use("default").execute(entityName,dataMap); EntityHelper.use("default").insert(entityName,dataMap); EntityHelper.use("default").update(entityName,dataMap); EntityHelper.use("default").delete(entityName,dataMap);

从以下版本开始:
2024/8/23 14:09
作者:
AaronFung
  • 构造器详细资料

    • EntityHelper

      public EntityHelper()
  • 方法详细资料

    • insert

      public int insert(String entityName, Map<String,Object> dataMap) throws SQLException
      向指定实体插入数据
      参数:
      entityName - 实体名称,用于指定要操作的数据表/实体
      dataMap - 包含要插入数据的键值对集合,键为字段名,值为字段值
      返回:
      返回操作结果,0表示成功(当前实现为固定返回值,实际实现可能返回受影响行数等)
      抛出:
      SQLException
    • insertWithDuplicateCheck

      public int insertWithDuplicateCheck(String entityName, Map<String,Object> dataMap, String... checkFields) throws SQLException
      向指定实体插入数据(带重复性检查)

      插入前会根据指定的字段组合检查数据是否已存在。

      使用示例:

       EntityHelper.insertWithDuplicateCheck("your_table", body, "user_name", "login_name");
       
      参数:
      entityName - 实体名称(表名)
      dataMap - 包含要插入数据的键值对集合
      checkFields - 用于检查重复的字段名列表(组合唯一)
      返回:
      0 表示操作成功
      抛出:
      BusiException - 当数据重复时抛出业务异常
      SQLException - 当数据库操作异常时抛出
    • save

      public int save(String entityName, Map<String,Object> dataMap) throws SQLException
      保存实体数据,如果实体数据存在则更新,不存在则
      抛出:
      SQLException
    • saveWithDuplicateCheck

      public int saveWithDuplicateCheck(String entityName, Map<String,Object> dataMap, String... checkFields) throws SQLException
      保存实体数据(带重复性检查)

      如果数据中包含 id 且不为空则执行更新操作,否则执行插入操作。 保存前会根据指定的字段组合检查数据是否已存在(排除当前记录自身)。

      使用示例:

       // 根据 user_name 和 login_name 组合检查重复
       EntityHelper.saveWithDuplicateCheck("your_table", body, "user_name", "login_name");
      
       // 根据单个字段检查重复
       EntityHelper.saveWithDuplicateCheck("your_table", body, "email");
       
      参数:
      entityName - 实体名称(表名)
      dataMap - 包含要保存数据的键值对集合
      checkFields - 用于检查重复的字段名列表(组合唯一)
      返回:
      0 表示操作成功
      抛出:
      BusiException - 当数据重复时抛出业务异常
      SQLException - 当数据库操作异常时抛出
    • update

      public int update(String entityName, Map<String,Object> dataMap) throws SQLException
      更新指定实体的数据
      参数:
      entityName - 实体名称,用于指定要更新的实体
      dataMap - 包含要更新的字段和对应值的Map集合
      返回:
      返回更新操作的结果(当前实现始终返回0,实际实现可能返回受影响的行数等)
      抛出:
      SQLException
    • updateWithDuplicateCheck

      public int updateWithDuplicateCheck(String entityName, Map<String,Object> dataMap, String... checkFields) throws SQLException
      更新指定实体的数据(带重复性检查)

      更新前会根据指定的字段组合检查数据是否已存在(自动排除当前记录自身)。

      使用示例:

       EntityHelper.updateWithDuplicateCheck("your_table", body, "user_name", "login_name");
       
      参数:
      entityName - 实体名称(表名)
      dataMap - 包含要更新数据的键值对集合(必须含 id 字段)
      checkFields - 用于检查重复的字段名列表(组合唯一)
      返回:
      0 表示操作成功
      抛出:
      BusiException - 当数据重复时抛出业务异常
      SQLException - 当数据库操作异常时抛出
    • delete

      public int delete(String entityName, Map<String,Object> dataMap)
      根据实体名称和数据映射删除记录
      参数:
      entityName - 实体名称,用于指定要操作的数据库表或实体
      dataMap - 数据映射,包含用于匹配删除条件的键值对
      返回:
      返回受影响的行数(当前实现固定返回0)
    • saveEntity

      public void saveEntity(EntityVO entityVO) throws EntityException, SQLException
      保存实体信息并刷新缓存

      该方法首先调用服务层保存实体数据,然后刷新对应实体的缓存

      参数:
      entityVO - 包含待保存实体信息的值对象
      抛出:
      EntityException - 当实体保存过程中发生业务异常时抛出
      SQLException - 当数据库操作发生异常时抛出
    • validate

      public void validate(String entity, Map<String,Object> dataMap) throws BusiException
      根据实体验证数据
      参数:
      entity - 实体名称,用于指定需要验证的实体类型
      dataMap - 包含待验证数据的Map,键为字段名,值为字段值
      抛出:
      BusiException - 当验证失败时抛出业务异常
    • formatByQuery

      public void formatByQuery(String entity, Map<String,Object> dataMap) throws BusiException, SQLException
      根据查询条件格式化实体数据
      参数:
      entity - 实体名称,用于指定要操作的数据库实体
      dataMap - 包含查询条件和格式化参数的键值对集合
      抛出:
      BusiException - 业务异常,当处理过程中发生业务逻辑错误时抛出
      SQLException - 数据库异常,当执行数据库操作失败时抛出
    • formatByReport

      public void formatByReport(String entity, Map<String,Object> dataMap) throws BusiException, SQLException
      根据报表格式化实体数据
      参数:
      entity - 实体名称,用于指定需要格式化的实体
      dataMap - 包含实体数据的Map集合,键为字段名,值为字段值
      抛出:
      BusiException - 业务异常,当业务处理过程中出现错误时抛出
      SQLException - 数据库操作异常,当数据库访问出错时抛出
    • formatByReport

      public void formatByReport(String entity, List<Map<String,Object>> dataList) throws BusiException, SQLException
      根据报表格式化实体数据
      参数:
      entity - 实体名称,用于指定要格式化的实体类型
      dataList - 包含实体数据的列表,每个元素是一个Map,键为字段名,值为字段值
      抛出:
      BusiException - 业务异常,当业务处理过程中出现错误时抛出
      SQLException - 数据库异常,当数据库操作出现错误时抛出
    • executeFormula

      public void executeFormula(String entity, Map<String,Object> dataMap) throws ScriptException, BusiException, TokenAuthenticationException, SQLException
      执行指定实体的公式计算
      参数:
      entity - 实体名称,用于标识需要执行公式的实体
      dataMap - 包含公式计算所需数据的Map集合,键为数据项名称,值为对应数据
      抛出:
      ScriptException - 脚本执行异常
      BusiException - 业务逻辑异常
      TokenAuthenticationException - 令牌认证异常
      SQLException - 数据库操作异常
    • autocode

      public String autocode(String entityName, String propertyName, Map<String,Object> dataMap) throws TokenAuthenticationException, SQLException
      根据实体名、属性名和数据映射自动生成代码
      参数:
      entityName - 实体名称
      propertyName - 属性名称
      dataMap - 数据映射表,包含生成代码所需的参数
      返回:
      生成的代码字符串
      抛出:
      TokenAuthenticationException - 令牌认证异常
      SQLException - 数据库操作异常
    • autocode

      public String autocode(String entityName, String propertyName, Map<String,Object> dataMap, boolean commit) throws TokenAuthenticationException, SQLException
      自动生成实体属性代码
      参数:
      entityName - 实体名称
      propertyName - 属性名称
      dataMap - 数据映射表,包含生成代码所需的额外数据
      commit - 是否立即提交生成结果到数据库
      返回:
      生成的代码字符串
      抛出:
      TokenAuthenticationException - 令牌认证异常
      SQLException - 数据库操作异常
    • executeFormula

      public void executeFormula(String entity, List<Map<String,Object>> dataList) throws ScriptException, BusiException, TokenAuthenticationException, SQLException
      批量执行指定实体的公式计算

      遍历数据列表中的每个数据映射,调用实体数据服务执行对应的公式计算

      参数:
      entity - 实体名称,用于指定需要执行公式的实体对象
      dataList - 包含多个数据映射的列表,每个映射包含公式计算所需的参数
      抛出:
      ScriptException - 当公式脚本执行异常时抛出
      BusiException - 当业务逻辑处理异常时抛出
      TokenAuthenticationException - 当令牌认证失败时抛出
      SQLException - 当数据库操作异常时抛出
    • executeBeforeEvent

      public void executeBeforeEvent(String entity, Map<String,Object> dataMap) throws ScriptException, BusiException
      在事件发生前执行相关操作(当前实现实际调用的是事件发生后的操作,可能存在命名或逻辑错误)
      参数:
      entity - 实体名称,用于标识操作对象
      dataMap - 包含操作所需数据的键值对集合
      抛出:
      ScriptException - 当脚本执行出现异常时抛出
      BusiException - 当业务逻辑处理出现异常时抛出
    • executeAfterEvent

      public void executeAfterEvent(String entity, Map<String,Object> dataMap) throws ScriptException, BusiException
      在事件发生后执行相关操作(当前实现实际调用的是事件发生前的执行方法,需确认是否为设计意图)
      参数:
      entity - 实体名称,用于标识需要处理的数据实体
      dataMap - 包含实体相关数据的键值对集合
      抛出:
      ScriptException - 当脚本执行出现异常时抛出
      BusiException - 当业务处理出现异常时抛出
    • formatByQuery

      public void formatByQuery(String entity, List<Map<String,Object>> dataList) throws BusiException, SQLException
      根据查询条件格式化实体数据
      参数:
      entity - 实体名称,用于标识需要格式化的数据实体
      dataList - 包含待格式化数据的列表,每个元素是一个Map,键为字段名,值为字段值
      抛出:
      BusiException - 当业务处理出现异常时抛出
      SQLException - 当数据库操作出现异常时抛出
    • formatByInsert

      public void formatByInsert(String entity, List<Map<String,Object>> dataList) throws BusiException, SQLException
      通过插入方式格式化实体数据
      参数:
      entity - 实体名称,用于指定要操作的数据表或实体
      dataList - 包含待插入数据的列表,每个元素是一个Map,表示一条记录的字段和值
      抛出:
      BusiException - 业务异常,当处理过程中发生业务逻辑错误时抛出
      SQLException - 数据库异常,当与数据库交互时发生错误时抛出
    • formatByInsert

      public void formatByInsert(String entity, Map<String,Object> dataMap) throws BusiException, SQLException, EntityException, TokenAuthenticationException
      通过插入方式格式化实体数据
      参数:
      entity - 实体名称,用于指定要格式化的实体类型
      dataMap - 包含实体数据的键值对映射,键为字段名,值为字段值
      抛出:
      BusiException - 业务异常,当业务处理过程中出现错误时抛出
      SQLException - 数据库操作异常,当执行SQL语句出现错误时抛出
      EntityException - 实体异常,当实体处理过程中出现错误时抛出
      TokenAuthenticationException - 令牌认证异常,当令牌认证失败时抛出
    • formatByUpdate

      public void formatByUpdate(String entity, List<Map<String,Object>> dataList) throws BusiException, SQLException
      通过更新方式格式化实体数据
      参数:
      entity - 实体名称,用于指定要操作的数据库实体
      dataList - 要更新的数据列表,每个元素是一个包含字段名和值的Map
      抛出:
      BusiException - 业务异常,当处理过程中发生业务错误时抛出
      SQLException - 数据库异常,当操作数据库发生错误时抛出
    • formatByUpdate

      public void formatByUpdate(String entity, Map<String,Object> dataMap) throws BusiException, SQLException
      根据更新操作格式化实体数据
      参数:
      entity - 实体名称,用于指定需要格式化的数据实体
      dataMap - 包含更新数据的键值对映射,键为字段名,值为新数据
      抛出:
      BusiException - 业务异常,当业务处理过程中出现错误时抛出
      SQLException - 数据库异常,当数据库操作失败时抛出
    • reload

      public void reload()
      清空实体缓存。

      该方法用于清除当前存储在实体缓存中的所有数据。