2023-10-25
|
ZH
override是实现检测需要插入的数据在数据库中是否存在,来确定覆盖还是跳过 ConfigStore与DataRow/DataSet都提供了override属性 大部分情况下需要用ConfigStore配合insert方法来实现 service.insert("table", set, new D
2023-10-21
|
ZH
在数据中台、数据同步场景中经常有这种需求,如果数量少可以清空后再全量同步一次,这样最省心。也可以插入前检测一下数据是否存在。 在如果数量很大,以方式显然不可取,如果自己实现一般是通过索引(性能)+存储过程(一次交互)实现 当然许多数据库都对这种场景提供了原生支持。用过ORM实现过这种
2024-02-01
|
ZH
定义列我们一般分成三部分 名称,数据类型,其他属性如果遇到一些anyline没有处理的特殊类型,如set('X','Y','Z') 等这种类型Column对象没有对应的属性可以配置,这种可以直接设置new Column("col_name").setFinalType("set('X','
2024-03-04
|
ZH
确定更新条件的 按指定条件更新;没有指定条件的 按主键更新 @Test public void updateRow(){ DataRow row = new DataRow(); row.put("ID", 10); row.put("
2024-02-29
|
ZH
L:长度 P:有效位数 S:小数位数或时间类型精度
2024-02-20
|
ZH
tinyint与tinyint(1)稍微有点区别 tinyint(1)类型,在JDBC连接MySQL数据库时会返回true或false,可以通过在JDBC的URL中增加tinyInt1isBit=false参数来解决。加上这个参数后会返回0或1 当设计MySQL表结构时,应避免设计为tin
2024-01-29
|
ZH
主要用来配置从结果集中读取元数据的依据,如表名,列名,数据类型等在结果集中的哪一列 从每个adapter中实现的方法中返回如TableMetadataAdapter/ColumnMetadataAdapter/IndexColumnMetadataAdapter 注意这里只能设置从哪一列读取数据,但
2024-02-02
|
ZH
看了几个版本的druid源码 发现getSchema没有实现导致 检测表的schema时匹配失败,所以没有返回表 public String getschema() throws SQLException { throw new SOLFeatureNotSupportedExcept
2024-01-25
|
ZH
因为性能考虑maps方法默认不检测总行数。除非明确设置。 PageNavi navi = new DefaultPageNavi(); service.maps(table, navi.total(true)); System.out.println(navi.getTotalRow()); Con
2024-01-25
|
ZH
adapter基本上每个数据库会有一个,用来适配当前数据库的特性语法。但是特性毕竟是少数,所以大部分的方法没有实现而是直接调用了super.super.super....方法 这部分代码对CPU业说确实是没用的 但是数据库太多、方法太多,这些方法不是一次性实现的,都是在使用过程中慢慢