类 JdbcHelper.Table

java.lang.Object
net.sohelp.boot.admin.core.db.JdbcHelper.Table
封闭类:
JdbcHelper

public class JdbcHelper.Table extends Object
  • 构造器详细资料

    • Table

      public Table(String key, String tableName) throws SQLException
      构造函数,用于初始化表操作相关对象
      参数:
      key - 数据源标识键
      tableName - 要操作的表名
      抛出:
      SQLException - 当表名为空或表不存在时抛出异常 1. 表名为空时抛出"表名不能为空"异常 2. 表不存在时抛出"表不存在"异常
  • 方法详细资料

    • getDatabaseName

      @Comment("\u83b7\u53d6\u8868\u6240\u5728\u6570\u636e\u5e93\u540d\u79f0") public String getDatabaseName() throws SQLException
      获取表所在数据库名称
      返回:
      数据库名称字符串
      抛出:
      SQLException - 如果获取数据库名称时发生SQL异常
    • getDatabaseType

      @Comment("\u83b7\u53d6\u8868\u6240\u5728\u6570\u636e\u5e93\u7c7b\u578b\uff1amysql,mssql,oracle") public String getDatabaseType() throws SQLException
      获取表所在数据库类型:mysql,mssql,oracle
      返回:
      数据库类型字符串(mysql/mssql/oracle)
      抛出:
      SQLException - 如果获取数据库类型时发生SQL异常
    • batchUpdate

      @Comment("\u5355\u8868\u6279\u91cf\u66f4\u65b0") public int[] batchUpdate(@Comment("\u4f8b\u5982\uff1a[{id:1,name:\'name\',old:23},{id:2,name:\'name\',old:23}]") List<Map<String,Object>> data) throws SQLException
      单表批量更新
      参数:
      data - 批量更新的数据列表,格式例如:[{id:1,name:'name',old:23},{id:2,name:'name',old:23}]
      返回:
      更新结果数组
      抛出:
      SQLException - 当data为null时抛出
    • batchUpdate

      @Comment("\u5355\u8868\u6279\u91cf\u66f4\u65b0") public int[] batchUpdate(@Comment("\u4f8b\u5982\uff1a[{id:1,name:\'name\',old:23},{id:2,name:\'name\',old:23}]") Map<String,Object>[] data) throws SQLException
      单表批量更新
      参数:
      data - 包含更新数据的Map数组,格式例如:[{id:1,name:'name',old:23},{id:2,name:'name',old:23}]
      返回:
      更新操作返回的int数组,每个元素对应一次更新操作的结果
      抛出:
      SQLException - 如果执行SQL过程中出现异常
    • update

      @Comment("\u5355\u8868\u6279\u91cf\u66f4\u65b0") public int update(@Comment("\u4f8b\u5982\uff1a{id:2,name:\'name\',old:3}") Map<String,Object> dataMap) throws SQLException
      单表批量更新
      参数:
      dataMap - 包含更新数据的Map,格式如:{id:2,name:'name',old:3}。 其中id对应表的主键,其他字段为需要更新的字段
      返回:
      更新操作影响的行数
      抛出:
      SQLException - 当主键不存在或没有可更新字段时抛出异常
    • primary

      @Comment("\u8bbe\u7f6e\u4e3b\u952e\u540d\uff0c\u9ed8\u8ba4:id") public JdbcHelper.Table primary(@Comment("\u4e3b\u952e\u540d:id,\u4f8b\u5982: id,no....") String... primaryKey)
      设置主键名,默认:id
      参数:
      primaryKey - 主键名:id,例如: id,no.... 可变参数形式,允许设置多个主键名
      返回:
      返回当前Table对象,支持链式调用
    • where

      @Comment("\u8bbe\u7f6ewhere\u8bed\u53e5") public JdbcHelper.Table where(@Comment("\u6761\u4ef6\u8bed\u53e5,\u4f8b\u5982: id=1") String where)
      设置where语句
      参数:
      where - 条件语句,例如: id=1
      返回:
      当前Table对象,支持链式调用
    • save

      @Comment("\u6839\u636e\u662f\u5426\u5305\u62ecID\u9879\uff0c\u6765\u51b3\u5b9a\u662f\u5426\u66f4\u65b0\u8fd8\u662f\u63d2\u5165\u6570\u636e") public int save(@Comment("\u4f8b\u5982: {field1\uff1a1\uff0cfield2:\'val1\'}") Map<String,Object> dataMap) throws SQLException, TokenAuthenticationException
      根据是否包括ID项,来决定是否更新还是插入数据
      参数:
      dataMap - 包含要保存的数据的Map对象,例如: {field1:1,field2:'val1'}
      返回:
      返回操作影响的行数
      抛出:
      SQLException - 当数据库操作发生异常时抛出
      TokenAuthenticationException - 当令牌认证失败时抛出
    • validateValue

      @Comment("\u6570\u636e\u683c\u5f0f\u9a8c\u8bc1") public void validateValue(Map<String,Object> dataMap) throws SQLException
      数据格式验证

      根据表字段映射信息验证输入数据Map中的字段值是否符合要求,包括: 1. 检查必填字段是否为空 2. 检查字符串类型字段长度是否超过最大限制

      参数:
      dataMap - 包含待验证数据的Map,key为字段名,value为字段值
      抛出:
      SQLException - 当验证不通过时抛出异常,包含具体的错误信息
    • formatByInsert

      public List<Map<String,Object>> formatByInsert(@Comment("\u4f8b\u5982: {id\uff1a3\uff0cname:\'name\',old:3}") List<Map<String,Object>> dataList) throws SQLException
      格式化数据列表以适应插入操作

      对输入的Map列表中的每个元素进行格式化处理,返回处理后的新列表。 如果输入列表为空或null,则返回空列表。

      参数:
      dataList - 包含待格式化数据的Map列表,示例: {id:3,name:'name',old:3}
      返回:
      格式化后的新Map列表
      抛出:
      SQLException - 如果数据库操作过程中发生错误
    • formatByInsert

      @Comment("\u521d\u59cb\u5316\u6570\u636e\u683c\u5f0f") public Map<String,Object> formatByInsert(@Comment("\u4f8b\u5982: {id\uff1a3\uff0cname:\'name\',old:3}") Map<String,Object> dataMap) throws SQLException
      初始化数据格式,根据表字段映射规则处理输入数据
      参数:
      dataMap - 输入数据映射表,格式如:{id:3, name:'name', old:3} 如果字段值为null或空字符串,会使用表字段映射中的默认值填充
      返回:
      返回处理后的新数据映射表(当前实现存在bug,实际返回的是空map而非处理后的数据)
      抛出:
      SQLException - 如果数据库操作出现异常时抛出
    • formatByUpdate

      public List<Map<String,Object>> formatByUpdate(List<Map<String,Object>> dataList) throws SQLException
      批量处理数据列表,对每个元素调用单条数据格式化方法
      参数:
      dataList - 待处理的数据列表,每个元素为Map结构
      返回:
      处理后的新数据列表,如果输入为null或空列表则返回空列表
      抛出:
      SQLException - 如果处理过程中发生数据库异常
    • formatByUpdate

      @Comment("\u6839\u636e\u8868\u5b57\u6bb5\u7684\u9ed8\u8ba4\u6570\u636e\u53bb\u521d\u59cb\u5316\u5b57\u6bb5\u503c") public Map<String,Object> formatByUpdate(@Comment("\u4f8b\u5982: {id\uff1a3\uff0cname:\'name\',old:3}") Map<String,Object> dataMap) throws SQLException
      根据表字段的默认数据去初始化字段值
      返回:
      已初始化的数据对像
      抛出:
      SQLException
    • batchInsert

      @Comment("\u5355\u8868\u6279\u91cf\u63d2\u5165") public int[] batchInsert(@Comment("\u4f8b\u5982: [{id:3,name:\'name\',old:3},{id:2,name:\'name\',old:3}]") List<Map<String,Object>> data) throws SQLException
      单表批量插入
      参数:
      data - 待插入的数据列表,格式例如: [{id:3,name:'name',old:3},{id:2,name:'name',old:3}]
      返回:
      批量插入操作的结果数组
      抛出:
      SQLException - 当data为null时抛出异常
    • batchInsert

      @Comment("\u6279\u91cf\u6dfb\u52a0") public int[] batchInsert(@Comment("\u4f8b\u5982: [{id:3,name:\'name\',old:3},{id:2,name:\'name\',old:3}]") Map<String,Object>[] dataList) throws SQLException
      批量添加数据到数据库
      参数:
      dataList - 包含多个数据对象的Map数组,每个Map代表一条记录, 例如: [{id:3,name:'name',old:3},{id:2,name:'name',old:3}]
      返回:
      插入操作返回的结果数组,每个元素对应一条记录的插入结果
      抛出:
      SQLException - 当数据库操作出现异常时抛出
    • getSQLInsert

      @Comment("\u6839\u636e\u8868\u7ed3\u6784\u83b7\u53d6\u63d2\u5165\u8bed\u53e5") public String getSQLInsert() throws SQLException
      根据表结构获取插入语句
      返回:
      生成的INSERT SQL语句,格式为:INSERT INTO 表名(字段1,字段2...) VALUES(#{字段1},#{字段2}...)
      抛出:
      SQLException - 如果获取表结构信息时发生数据库错误
    • insert

      @Comment("\u5355\u8868\u63d2\u5165\u6570\u636e") public int insert(@Comment("\u4f8b\u5982: {id\uff1a3\uff0cname:\'name\',old:3}") Map<String,Object> dataMap) throws SQLException
      单表插入数据
      参数:
      dataMap - 包含要插入数据的Map对象,例如: {id:3,name:'name',old:3}
      返回:
      插入操作影响的行数
      抛出:
      SQLException - 如果执行SQL时发生错误
    • delete

      @Comment("\u6839\u636e\u4e3b\u5065\u5220\u9664\u6570\u636e") public int delete(@Comment("\u4f8b\u5982\uff1a1\u6216\u8005\u5b57\u7b26\u4e32") Object id)
      根据主键删除数据
      参数:
      id - 主键值,可以是单个值(如数字或字符串)或包含多个主键的Map集合 例如:1 或者字符串,或者包含多个键值对的Map
      返回:
      返回受影响的行数,0表示没有删除任何记录
      抛出:
      RuntimeException - 当没有定义任何主键时抛出异常
    • batchDelete

      @Comment("\u6839\u636e\u4e3b\u5065\u6279\u91cf\u5220\u9664\u6570\u636e") public int[] batchDelete(@Comment("\u4f8b\u5982: [1,2,3]") List<Object> ids)
      根据主健批量删除数据
      参数:
      ids - 主键ID列表,例如: [1,2,3]
      返回:
      每个ID对应的删除操作结果数组
    • batchDelete

      @Comment("\u6839\u636e\u4e3b\u5065\u6279\u91cf\u5220\u9664\u6570\u636e") public int[] batchDelete(@Comment("\u4f8b\u5982: [1,2,3]") Object[] ids)
      根据主键批量删除数据
      参数:
      ids - 主键ID数组,例如: [1,2,3]
      返回:
      删除操作的结果数组(当前实现有误,返回的是错误值)