2023-10-21
|
ZH
在数据中台、数据同步场景中经常有这种需求,如果数量少可以清空后再全量同步一次,这样最省心。也可以插入前检测一下数据是否存在。 在如果数量很大,以方式显然不可取,如果自己实现一般是通过索引(性能)+存储过程(一次交互)实现 当然许多数据库都对这种场景提供了原生支持。用过ORM实现过这种
2023-10-21
|
ZH
最初ands是为了生成in条件,但and已经可以识别集合条件自动生成IN, 2023-10-21后 ands改成了与ors类似的效果,即把之前所有的条件放在一个()内,然后and this
2023-10-23
|
ZH
在查询条件和查询列中经常需要函数,当然这样查询对性能影响非常严重,只是举例说明一下语法 SELECT id,to_char(reg_time,'yyyy-mm') as ym FROM crm_user WHERE char(reg_time,'yyyy-mm-dd') LIKE
2023-10-24
|
ZH
异构数据源迁移,大概过程就3步,其他细节就看具体情况了 1.在目标库创建表结构 2.从源库中查出数据 3.插入到目标库 举个从Mysql到Apache Ignite的示例 过程中有可能需要合并数据参考,可以通过ConfigStore.override(true)实现【目标库不存在则插入,存在则覆盖或
2023-10-25
|
ZH
override是实现检测需要插入的数据在数据库中是否存在,来确定覆盖还是跳过 ConfigStore与DataRow/DataSet都提供了override属性 大部分情况下需要用ConfigStore配合insert方法来实现 service.insert("table", set, new D
2023-10-26
|
ZH
根据SQL获取元数据信息 service.metadata(String sql, boolean comment) comment:表示是否需要获取列注释,需要数据库官方驱动的支持 如果需要获取表结构应该用service.metadata().table("表名")//返回列、索引等全部表结构
2023-10-27
|
ZH
插入时可用Long类型,需要注意的时new Date().getTime()或System.currentTimeMillis()返回的毫秒基础上要*1000 也可以String类型,格式必须是YYYY-MM-DD hh.mm.ss.nnnnnn 或 YYYY-MM-DD
2023-11-09
|
ZH
提供了两个方法DataSourceHolder.validity()和hit() 其中hit()会抛出异常,可以捕捉用来显示详细信息 service ServiceProxy/DatasourceHolder/RuntimeHolder都提供了相应的方法 其中service不需要提供参数,因为ser
2023-11-04
|
ZH
原因及需要处理的问题: 1.跨库的问题 群里一直有些中台和低代码的项目需要查询多个库的Table列表 但有些数据库并不支持跨库,比如他的系统表tables在每个库中单独维护 修改后会增加根据数据库自动创建、注销数据源的方法(数据源与数据库一一对应) 这样就不存在跨库的问题了 2.数据源切换的问题