2024-08-27
|
ZH
如果有项目中自定义的类型 在写入数据库时 驱动有可能不支持 可以注册一个DataWriter,实现write方法,在写入数据库时如果匹配到相关的类型 会调用write方法执行类型转换 write要把Object value转换成java默认类型,这样系统内部会转换成驱动需要的类型 或者直接转换成数据
2024-08-26
|
ZH
在执行查询时,如果有部分占位符没有赋值通常需要忽略这部分条件 String sql = "SELECT * FROM FI_USER WHERE 1=1 ${AND (ID>:MAX OR ID<:MIN)} AND NAME IS NOT NULL ${AND LVL
2024-08-25
|
ZH
先创建测试表 /** @Test public void init() throws Exception { init("FI_USER"); init("HR_USER"); init("MM_USER"); } public void init(String name) throws Ex
2024-08-25
|
ZH
/** * 先创建测试表 * @throws Exception Exception */ @Test public void init() throws Exception { init("FI_USER");
2024-08-15
|
ZH
直接解析DDL是很困难的,所以不直接解析把DDL交给数据库执行一下mysqlService.execute(ddl) 在生成了表之后,从数据库中读取表结构对象Table table = mysqlService.metadata().table(表名) 再用oracle创建表oracleS
2024-08-14
|
ZH
默认已关闭 boolean IS_LOG_QUERY_RESULT = false ; // 查询结果输出日志 boolean IS_LOG_QUERY_RESULT_EXCLUDE_METADATA = true ; // 查询结果输出日志时 是否过滤元数据查询结果 in
2023-06-16
|
ZH
在执行DDL时,需要频繁的读取表结构等元数据,非常耗时,所以会添加一层缓存。 也是就是不会每次都从数据库中读取数据。 以下3种情况会清空缓存: 1.缓存过期 2.执行DDL 3.调用CacheProxy.clear() 这样会存在一个问题。如果表结构还在
2024-07-26
|
ZH
默认情况下anyline中的一个数据源 只会绑定一个DriverAdapter(用来生成一类数据库方言) 但有第三方数据源会通过DynamicDataSource实现数据源切换,这样就会造成一个数据源对应多种数据库如(mysql, oracle) 而adapter只会检测一次,这样就会造成
2024-06-03
|
ZH
RunPrepare p1 = TableBuilder.init("SSO_USER(ID, NAME)").build().condition(new DefaultConfigStore().ge("ID", 1)); RunPrepare p2 = TableBuilder.init("H
2024-08-14
|
ZH
对于有些严格要求数据类型的数据库,参数类型与数据库列的类型要一致,可能通过::数据类型 后缀的格式指定数据类型,如pg要求类型一致需要指定格式,而mysql可以隐式转换不用指定 service.querys("HR_EMPLOYEE" , condition("ID:>=min::