2023-04-17
|
ZH
有些数据库对数据类型要求比较严格,不能隐式转换,这时需要开启 ConfigTable.IS_AUTO_CHECK_METADATA = true; 这样在插入数据前可以检测列的数据类型,检测到数据类型才能实现正确的格式转换 例如Oracle
2023-04-16
|
ZH
表中没有数据的情况 一般可以正常修改 但部分数据库有些类型之间不可修改 表中有数据的情况 可能造成值类型不兼容,如果需要自动修改需要开启 //ConfigTable.AFTER_ALTER_COLUMN_EXCEPTION_ACTION // 0:中断执行 // 1:直接修正 // n:行数n时触发另一个监听(默认返回false)
2023-04-16
|
ZH
//修改列名2种方式 //注意:修改列名时,不要直接设置name属性,修改数据类型时,不要直接设置typeName属性,因为需要原属性 // 1.可以设置newName属性(注意setNewName返回的是update) column.setNewName("B_TEST").setTypeN
2023-04-16
|
ZH
1.保存表时 在指定列上标记删除 2.保存表时删除数据库中有,但表结构中没有的列 3.直接删除列
2023-04-16
|
ZH
Table table = service.metadata().table("TEST_PK"); Column pcol = table.addColumn("PKID", "int"); PrimaryKey pk = new PrimaryKey(); pk.addColumn(pcol);
2023-06-14
|
ZH
默认情况下,注册一个数据源就会自动生成一个事务管理器。如果项目没事务控制的需求,可以禁用Anyline事务管理器 ConfigTable.IS_OPEN_TRANSACTION_MANAGER = false; 这样无论是通过配置文件还是Java注册数据源时,都不会生成事务管理器
2023-06-16
|
ZH
在controller中查询数据时经常会用到: String status = "FINAL"; service.query("CRM_USER", condition(true, "TYPE_CODE:type"), "DATA_STATUS:"+status); 实际执行的
2023-06-14
|
ZH
为什么有些boolean的属性用int类型,如是否可以为空 因为需要标记一个未知状态,就是不知道是true还是false 在metadata操作赋值时,经常需要根据多种渠道获取一个值,这种情况下如果既不是true也不是false时就可以覆盖,如果已经有值了ture或false就不再继
2023-06-14
|
ZH
修改表名或列名的操作比较特殊, 先看一个最终执行的SQL RENAME TABLE 原表名 TO 新表名 与其他修改属性的操作不一样的新名与原表名与新表名都需要保留,否则就不知道要修改的是哪个表或哪个列了。这不像在Java中可以引用传址。 这里有一个需要记住
2023-06-14
|
ZH
MySQL的DDL语句是非事务的,即不能对DLL语句进行回滚操作 并且在执行到DDL语句时,会隐式的将当前回话的事务进行一次“COMMIT”操作,也就是说之前未提交的事务会被提交。 因此在MySQL中执行DDL语句时,应该严格地将DDL和DML完全分开,不能混合在一起执行