2024-06-20
|
ZH
数量比较大时,可以直接根据SELECT插入,跳过网络IO会快许多 //INSERT INTO A SELECT * FROM B //与查询方法参数一致,在查询方法基础上 加一个插入目标表 ServiceProxy.insert("crm_user(ID,CODE)", "sso_user(ID,C
2024-07-16
|
ZH
防注入是指把符合SQL特征的参数值过滤或修改,避免拼接上参数值后破坏原SQL结构 anyline方法唯一与注入相关的是把参数值换成了占位符 但方法内部不会检测参数值是否合法,因为ConfigStore.and(String sql)之类的方法是可以接收原生SQL作参数的,这部分参数基本符合注入特征,
2024-07-13
|
ZH
大部分数据库需要先删除 再创建。 另外要注意的时,新表中如果没有索引并不会删除,只有明确标记删除的索引才会被删除,就是调用过index.drop()方法的索引,在save或alter(table)时才会删除这个索引 是因为许多情况会生成索引,比如唯一约束也会生成个索引,但并不一定
2024-06-12
|
ZH
ConfigStore configs = new DefaultConfigStore(); configs.and(Compare.JSON_CONTAINS, "CODES>$.A", 11); set = service.querys(
2024-06-08
|
ZH
这个开关是用来检测目标表的元数据。主要检测列名、数据类型。在用mysql作CURD操作时这个开关没什么太大作用。但在一些数据类型要求比较严格的数据库如pg中,插入或查询数据时要求参数的数据类型与列的数据类型一致,否则会抛出异常。常见的如int类型不能与varchar类型比较,varchar类型的列不
2024-06-06
|
ZH
通常情况下系统可以根据jdbc协议及其他特征自动识别adapter 但如果同一个项目下有多种数据源 并且 多个数据源有使用相同的jdbc协议时 如同一个项目中同时有postgis,openguass他们都用相同的jdbc:postgresql协议, 这时有在生成SQL
2024-06-08
|
ZH
在读取clob类型的数据时返回了com.alibaba.druid.proxy.jdbc.NClobProxyImpl 对于基础类型与官方驱动内置类型 anyline可以转换成项目运行实际需要的类型,如把clob类型转换成String 如pg驱动中的point转换成double[]或Po
2024-06-08
|
ZH
许多项目在初期使用了mysql但后期发现数据量太大需要分区,这时可以用pg内置的分区表 读取mysql表结构 修改差异部分,如catalog,schema等,当然数据类型就不需要手工处理了,可以自动适配 设置分区类型 //检测一下pg中有没有这个表 Table
2024-05-30
|
ZH
原版本 新版本 主要差异 8.6.x 8.7.x 数据源切换方式