介绍

MetaService类是在控制器(Controller)或某些实现类中进行引入,调运类里面封装的公有方法来操作平台数据库连接、数据增删改查及底层mybatis

方法

getConnection() : Connection

获取数据库连接对象

  • 参数说明:无参

  • 返回数据说明: return connection

    返回数据库连接信息

  • 示例:

    /**
    * 获取数据库连接对象
    * getConnection()方法实现
    * @return Connection 返回数据库连接信息
    */
    public Connection getConnection() {
          try {
              Connection connection;
              //循环获取,避免拿到已经失效的连接
              do {
                  connection = dataSource.getConnection();
              } while (connection.isClosed());
              return connection;
          } catch (SQLException e) {
              throw new PlatformException("获取数据库连接失败!", PlatformExceptionEnum.CONNECTION_ERROR, e);
          }
      }
    /**
    * 调运方法的案例
    */
    Connection  connection = metaService.getConnection();
  • 注意

getDbType() : DbType

获取数据库类型

  • 参数说明:无参

  • 返回数据说明:return DbType

    返回数据库类型

  • 示例:

    /**
    * 获取数据库类型
    * getDbType()方法实现
    * @return DbType 返回数据库类型
    */
    public DbType getDbType() {
          try {
              return DbType.getDbTypeByUrl(getConnection().getMetaData().getURL());
          } catch (SQLException e) {
              throw new PlatformException("获取数据库连接失败!", PlatformExceptionEnum.CONNECTION_ERROR, e);
          }
      }
  • 注意

clearMyBatisCache()

清空缓存

  • 参数说明:无参

  • 返回数据说明:无返回值

  • 示例:

    /**
    * 清空所有缓存中调运的方法
    */
    metaService.clearMyBatisCache();

clearMyBatisCache(String tableCode)

清空表缓存

  • 参数说明
属性名 类型 说明
tableCode String 表名
  • 返回数据说明:无返回值

  • 示例:

    /**
    * 清空表缓存中调运的方法
    */
    metaService.clearMyBatisFuncCache(dynaBean.getStr("FUNCINFO_FUNCCODE"));
  • 注意

clearMyBatisFuncCache(String funcCode)

清空功能缓存

  • 参数说明
属性名 类型 说明
funcCode String 功能编码
  • 返回数据说明:无返回值

  • 示例:

    /**
    * 清空功能缓存中调运的方法
    */
    metaService.clearMyBatisFuncCache(dynaBean.getStr("FUNCINFO_FUNCCODE"));
  • 注意

insert(DynaBean beanMap) : int

插入字段值

  • 参数说明:DynaBean beanMap
属性名 类型 说明
DynaBean Object 实体对象
  • 返回数据说明:return int

    返回插入的记录数,返回值类型为int

  • 示例:

    /**
    * 无表名插入数据,返回插入记录数
    */
    DynaBean bean = new DynaBean();
    bean.setStr("USER_NAME", "张三");
    metaService.insert(bean);
  • 注意

insert(String tableCode, DynaBean beanMap) : int

根据指定表名插入数据

  • 参数说明
属性名 类型 说明
tableCode String 表名
beanMap Object 实体对象
  • 返回数据说明:return int

    返回插入的记录数,返回值类型为int

  • 示例:

    /**
    * 根据指定表名插入数据,返回插入记录数
    */
    DynaBean bean = new DynaBean();
    bean.setStr("USER_NAME", "张三");
    metaService.insert("JE_CORE_ENDUSER",bean);
  • 注意

insertBatch(List< DynaBean> list) : int

批量插入数据

  • 参数说明
属性名 类型 说明
List< DynaBean> List 插入数据集合
  • 返回数据说明:return int

    返回插入的记录数,返回值类型为int

  • 示例

  • 注意

insertBatch(String tableCode, List< DynaBean> list) : int

根据表名批量插入数据

  • 参数说明
属性名 类型 说明
tableCode String 表名
List< DynaBean> List 插入数据集合
  • 返回数据说明:return int

    返回插入的记录数,返回值类型为int

  • 示例

  • 注意

update(DynaBean beanMap) : int

根据主键修改数据,主键在DynaBean中可以获取

  • 参数说明
属性名 类型 说明
DynaBean Object 实体对象
  • 返回数据说明:return int

    返回修改的记录数,返回值类型为int

  • 示例

    public DynaBean editOrder(Order order) {
      order.setStr("JE_DEMO_ORDER_ID",order.getOrderId);
      order.setStr("ORDER_NAME","商品名称");
      metaService.update(order);
    }
  • 注意

update(DynaBean beanMap, ConditionsWrapper wrapper) : int

根据主键与相关条件修改数据,主键在DynaBean中可以获取

  • 参数说明
属性名 类型 说明
DynaBean Object 实体对象
ConditionsWrapper where条件
  • 返回数据说明:return int

    返回修改的记录数,返回值类型为int

  • 示例

    public DynaBean editOrder(Order order) {
      order.setStr("JE_DEMO_ORDER_NUM","80");
      /**条件是订单状态为1在修改订单数量 */
      /** where JE_DEMO_ORDER_STATUS = '1' */
      metaService.update(order, ConditionsWrapper.builder()
                          .eq("JE_DEMO_ORDER_ID", order.getStr("JE_DEMO_ORDER_ID"))
                          .eq("JE_DEMO_ORDER_STATUS", "1"));
    }
  • 注意

update(String tableCode, String pkValue, DynaBean beanMap, ConditionsWrapper wrapper) : int

指定表名、主键、修改字段、相关条件修改数据

  • 参数说明
属性名 类型 说明
tableCode Object 表名
pkValue Object 主键
DynaBean Object 实体对象
ConditionsWrapper where条件
  • 返回数据说明:return int

    返回修改的记录数,返回值类型为int

  • 示例

  • 注意

delete(ConditionsWrapper wrapper) : int

使用条件解析器表名删除数据

  • 参数说明
属性名 类型 说明
ConditionsWrapper where条件
  • 返回数据说明:return int

    返回删除的记录数,返回值类型为int

  • 示例

    ConditionsWrapper deleteWrapper = ConditionsWrapper.builder().table("HR_ZP_MSYY").eq("HR_ZP_TALENT_ID", bean.getStr("HR_ZP_TALENT_ID"));
    metaService.delete(deleteWrapper);
  • 注意

delete(String tableCode, ConditionsWrapper wrapper) : int

指定表名与条件进行删除

  • 参数说明
属性名 类型 说明
tableCode String 表名
ConditionsWrapper where条件
  • 返回数据说明:return int

    返回删除的记录数,返回值类型为int

  • 示例

    ConditionsWrapper deleteWrapper = ConditionsWrapper.builder().table("CRM_JYGL_HISTORY").eq("HISTORY_SJBGGL_ID", businessChangeId);
    metaService.delete("CRM_JYGL_HISTORY", deleteWrapper);
  • 注意

selectSql(String sql, Object… params) : List<Map<String, Object>>

查询数据使用自定义sql不进行分页处理

  • 参数说明
属性名 类型 说明
sql String sql语句
params sql参数数组
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

    List<Map<String, Object>> resultList = metaService.selectSql("select CBZJ_PT_BJJBXX_FAFL_ID from CBZJ_PT_BJJBXX_FAFL  where CBZJ_PT_BJJBXX_BJQD_ID={0}", bjqd_id);
  • 注意

selectSql(int current, int size, String sql, Object… params) : List<Map<String, Object>>

查询数据使用自定义sql并进行分页处理

  • 参数说明
属性名 类型 说明
current int 第几页
size int 每页数量
sql String sql语句
params sql参数数组
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

    String queryUser = " ZHID='" + currentUser.getZhId() + "' AND STATUS='1' AND VALID='1' ";
    List<Map<String, Object>> deptExtInfos = metaService.selectSql(1, end, " SELECT DEPTNAME LOGINLOG_DLDEPT_NAME,deptId LOGINLOG_DLDEPT_ID,'0' LOGINLOG_DLR_ID,0 TYPESUM FROM JE_CORE_DEPARTMENT WHERE  " + queryDept);
  • 注意

selectSql(ConditionsWrapper wrapper) : List<Map<String, Object>>

查询数据使用自定义sql不分页处理

  • 参数说明
属性名 类型 说明
ConditionsWrapper 条件
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

    String parent = dynaBean.getStr("SY_PARENT");
    List<Map<String, Object>> objs = metaService.selectSql(ConditionsWrapper.builder(
                      "select MAX(SY_TREEORDERINDEX) AS MAX FROM " + dynaBean.getTableCode() + "      WHERE SY_PARENT= {0}", parent)
                      .table(dynaBean.getTableCode()));
  • 注意

selectSql(Page page,ConditionsWrapper wrapper) : List<Map<String, Object>>

查询数据使用自定义sql,有分页处理

  • 参数说明
属性名 类型 说明
Page 分页对象
ConditionsWrapper 条件
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

    //查询订单信息
    public void selectOrder(MethodArgument param){
       //分页对象
       Page page = new Page<>(param.getPage(), param.getLimit());
      //拼接条件
       ConditionsWrapper wrapper = ConditionsWrapper.builder(param);
       //执行查询
       List<Map<String, Object>> result = metaService.selectSql(page, wrapper);
    }
  • 注意

selectSql(String tableCode, int current, int size, String sql, Object… params) : List<Map<String, Object>>

指定表名查询数据,使用自定义sql

  • 参数说明
属性名 类型 说明
tableCode String 表名
current int 第几页
size int 每页数量
sql String sql语句
params sql参数数组
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

  • 注意

select(String tableCode, Page page, String sql, Object… params) : List< DynaBean>

指定表名查询数据,使用自定义sql

  • 参数说明
属性名 类型 说明
tableCode String 表名
Page 分页对象
sql String sql语句
params sql参数数组
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

  • 注意

select(ConditionsWrapper wrapper) : List< DynaBean>

查询数据不分页,使用条件解析器的表名

  • 参数说明
属性名 类型 说明
ConditionsWrapper 条件解析器
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

    List<DynaBean> cpDics = metaService.select(ConditionsWrapper.builder().table("JE_SAAS_CPYHZY").
                          apply("CPYHZY_TYPE='YHDIC' AND CPYHZY_ZHID='SYSTEM'"));
  • 注意

select(String tableCode, ConditionsWrapper wrapper) : List< DynaBean>

指定表名查询数据且不分页

  • 参数说明
属性名 类型 说明
tableCode 表名
ConditionsWrapper 条件解析器
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

    List<DynaBean> dynaBeanList = metaService.select("JE_PM_LINK", ConditionsWrapper.builder().eq("LINK_YESORNO_CODE", "1").orderByAsc("SY_ORDERINDEX")); 
  • 注意

select(String tableCode, ConditionsWrapper wrapper, String columns) : List< DynaBean>

指定表名列名查询数据不分页

  • 参数说明
属性名 类型 说明
tableCode 表名
ConditionsWrapper 条件解析器
columns
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

    List<DynaBean> list = metaService.select("JE_LXSB_SBJH", ConditionsWrapper.builder().eq("JE_LXSB_SBXX_ID", id),
              "SBJH_JHAP,SBJH_WCQK,SBJH_ZMFJ");
  • 注意

select(String tableCode, int size, ConditionsWrapper wrapper) : List< DynaBean>

默认查询第一页数据

  • 参数说明
属性名 类型 说明
tableCode 表名
ConditionsWrapper 条件解析器
size 每页数量
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

  • 注意

select(int current, int size, ConditionsWrapper wrapper) : List< DynaBean>

查询使用条件解析器的表名,有分页

  • 参数说明
属性名 类型 说明
current 第几页
ConditionsWrapper 条件解析器
size 每页数量
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

  • 注意

select(String tableCode, int current, int size) : List< DynaBean>

查询不使用条件解析器的表名,有分页

  • 参数说明
属性名 类型 说明
tableCode String 表名
current int 第几页
size int 每页数量
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

  • 注意

select(String tableCode, int current, int size, ConditionsWrapper wrapper) : List< DynaBean>

查询数据

  • 参数说明
属性名 类型 说明
tableCode String 表名
current int 第几页
size int 每页数量
ConditionsWrapper 条件解析器
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

    ConditionsWrapper conditionsWrapper = ConditionsWrapper.builder().table("JE_SYS_LOGINLOG").eq("SY_ZHID", currentUser.getZhId()).apply("ORDER BY LOGINLOG_DLSJ DESC");
    List<DynaBean> lists = metaService.select("JE_SYS_LOGINLOG", start, limit, conditionsWrapper);
  • 注意

select(String tableCode, Page page, ConditionsWrapper wrapper) : List< DynaBean>

查询数据

  • 参数说明
属性名 类型 说明
tableCode String 表名
Page 分页对象
ConditionsWrapper 条件解析器
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

    public BaseRespResult selectCapacityHour(MethodArgument param) {
          HttpServletRequest request = param.getRequest();
          //获取当前登录人信息
          EndUser currentUser = SecurityUserHolder.getCurrentUser();
          //分页参数
          int start = param.getStart();
          int limit = param.getLimit();
          Page page = new Page(start, limit);
          String capacityStartDate = request.getParameter("capacityStartDate");  //产能开始日期
          String capacityEndDate = request.getParameter("capacityEndDate");      //产能结束日期
          List<DynaBean> dynaBeanList = dynaBeanList = metaService.select("JE_PM_GZTGS", page, ConditionsWrapper.builder().eq("ZXR_ID", currentUser.getUserId())
                      .ge("SUB_SY_CREATETIME", capacityStartDate).le("SUB_SY_CREATETIME", capacityEndDate).orderByDesc("SUB_SY_CREATETIME"));
          }

select(String tableCode, Page page, ConditionsWrapper wrapper, String columns) : List< DynaBean>

查询数据

  • 参数说明
属性名 类型 说明
tableCode String 表名
Page 分页对象
ConditionsWrapper 条件解析器
columns String 字段列
  • 返回数据说明:return List

    返回查询到的数据集合

  • 示例

    int start = param.getStart();
    int limit = param.getLimit();
    Page page = new Page(start, limit);
    String columns = "WORK_RWBT,TCR_NAME,WORK_JJCD_CODE,WORK_JJCD_NAME";
    List<DynaBean> dynaBeanList = metaService.select("JE_PM_WORK", page, conditionsWrapper, columns);

selectOne(String tableCode, ConditionsWrapper wrapper) : DynaBean

查询一条数据,返回结果大于一条,抛出异常

  • 参数说明
属性名 类型 说明
tableCode String 表名
ConditionsWrapper 条件解析器
  • 返回数据说明:DynaBean

    返回查询到的数据对象

  • 示例

    DynaBean xmjlUserDynaBean = metaService.selectOne("JE_CORE_ENDUSER", ConditionsWrapper.builder().eq("USERID",XMLXGL_XMJL_ID));

selectOne(String tableCode, ConditionsWrapper wrapper, String columns) : DynaBean

查询一条数据并且指定要查询的数据列,返回结果大于一条,抛出异常

  • 参数说明
属性名 类型 说明
tableCode String 表名
ConditionsWrapper 条件解析器
columns String 指定列
  • 返回数据说明:DynaBean

    返回查询到的数据对象

  • 示例

    DynaBean sbxxFunc = metaService.selectOne("JE_CORE_FUNCINFO",
              ConditionsWrapper.builder().eq("FUNCINFO_FUNCCODE", sbxxCode), "JE_CORE_FUNCINFO_ID");

load(String funcCode, Page page, String sql, Object… params) : List<Map<String, Object>>

查询功能数据

  • 参数说明
属性名 类型 说明
funcCode String 功能编码
Page 分页对象
sql String 查询语句
params Object sql参数数组
  • 返回数据说明:List

    返回查询到的数据集合

  • 示例

load(String funcCode, Page page, String sql, Object… params) : List<Map<String, Object>>

查询功能数据

  • 参数说明
属性名 类型 说明
funcCode String 功能编码
Page 分页对象
sql String 查询语句
params Object sql参数数组
  • 返回数据说明:List

    返回查询到的数据集合

  • 示例

Page page = new Page<>(param.getPage(), param.getLimit());
String funcId = param.getFuncId();
String funcCode = param.getFuncCode();
//构建查询条件
ConditionsWrapper wrapper = buildWrapper(param);
List<Map<String, Object>> list;
list = metaService.selectSql(page, wrapper);
page.setRecords(list);
list = metaService.load(funcCode, page, wrapper);

selectOneByPk(String tableCode, String pkValue) : DynaBean

根据主键查询数据

  • 参数说明
属性名 类型 说明
tableCode String 功能编码
pkValue String 主键
  • 返回数据说明:return DynaBean

    返回查询到的数据对象

  • 示例

DynaBean oldDic = metaService.selectOneByPk("JE_CORE_DICTIONARY", dynaBean.getStr("JE_CORE_DICTIONARY_ID"));

selectOneByPk(String tableCode, String pkValue, String columns) : DynaBean

根据主键查询指定列数据

  • 参数说明
属性名 类型 说明
tableCode String 功能编码
pkValue String 主键
columns String 要查询的列
  • 返回数据说明:return DynaBean

    返回查询到的数据对象

  • 示例

// 主键ID
String id = request.getParameter("versionId");
DynaBean dynaBean = metaService.selectOneByPk("JEPAAS_PTGL_VERSION", id, "VERSION_FRONTEND,VERSION_BACKEND,VERSION_FUNCINFO,VERSION_PTBB_CODE");

executeSql(String sql, Object… params) : int

查询执行sql数量

  • 参数说明
属性名 类型 说明
sql String 自定义sql
params Object sql参数数组
  • 返回数据说明:return int 影响记录数

    返回执行sql影响数量

  • 示例

    int x = metaService.executeSql(" DELETE FROM JE_CORE_ROLE_USER WHERE ROLEID={0}", role.getStr("ROLEID"));

executeSql(ConditionsWrapper wrapper) : int

用条件拼接器查询

  • 参数说明
属性名 类型 说明
ConditionsWrapper 条件拼接器
  • 返回数据说明:return int 影响记录数

    返回执行sql影响数量

  • 示例

    metaService.executeSql(ConditionsWrapper.builder(" UPDATE JE_PHONE_UPGRADE SET UPGRADE_QZGX = 0 WHERE JE_PHONE_UPGRADE_ID = {0}  ",pk).table("JE_PHONE_UPGRADE"));

countBySql(String sql, Object… params) : long

执行总数查询sql

  • 参数说明
属性名 类型 说明
sql String 自定义sql
params Object sql参数数组
  • 返回数据说明:return long count值

    返回总数

  • 示例

long  x  = metaService.countBySql("select count(*) from V_JEPAAS_VIP_KHGL where CRM_YXGL_CUSTOMER_ID ={0} and KHGL_GMVIPFW = '1'", customerId);

countBySql(ConditionsWrapper wrapper) : long

执行总数查询sql

  • 参数说明
属性名 类型 说明
ConditionsWrapper 条件拼接器
  • 返回数据说明:return long count值

    返回总数

  • 示例

    long x = metaService.countBySql(ConditionsWrapper.builder().table("JE_CORE_TABLECOLUMN")
                      .apply("TABLECOLUMN_RESOURCETABLE_ID={0} AND TABLECOLUMN_CODE='SY_FUNCEDIT'", table.getStr("JE_CORE_RESOURCETABLE_ID")));
最后编辑: 呼丽华  文档更新时间: 2023-04-26 08:43   作者:刘利军