Oracle自增长的处理:

    众所周知,Oracle没有自增概念,需要创建一个sequence,然后获得唯一ID。

    Eova的处理:1.自动指定约定Sequence规则:seq_表名.nextval

    1. public class EovaDbPro extends DbPro {
    2. public EovaDbPro(String configName) {
    3. super(configName);
    4. }
    5. @Override
    6. public boolean save(String tableName, String primaryKey, Record record) {
    7. // Oracle && 单主键 && 主键没值 -> 指定Sequence
    8. if (xx.isOracle() && !primaryKey.contains(",") && record.get(primaryKey) == null) {
    9. record.set(primaryKey, EovaConst.SEQ_ + tableName + ".nextval");
    10. }
    11. return super.save(tableName, primaryKey, record);
    12. }
    13. }

    使用默认Seq举例:

    Sql: insert into eova_log(id, user_id, type, info, ip) values(seq_eova_log.nextval, ?, ?, ?, ?)

    2.通过默认值自定义:

    2.1 自定义Sequence如果不想让系统指定固定Sequence想自定义或者共用Sequence可以使用默认值自行指定.

    自定义Seq举例:create sequence seq_eova_user increment by 1 start with 21 maxvalue 9999999999;

    PS:这里对名字没有约束,sequence 可以随意取名,例如:my_seq_id

    自行创建任意名字的sequence,然后通过 eova_field.defaulter 指定

    6.5. 关于Oracle - 图1

    Sql: insert into eova_user(login_id, id, rid, nickname, login_pwd) values(?, seq_eova_user.nextval, ?, ?, ?)

    2.2 默认ID值

    6.5. 关于Oracle - 图2

    新增后:

    6.5. 关于Oracle - 图3

    2.3 生成全局唯一ID默认值填写 UUID即可UUID规则:32位无去中划线全大写

    1. UUID.randomUUID().toString().replaceAll("-", "").toUpperCase()

    6.5. 关于Oracle - 图4

    注意设置字段新增/更新状态=隐藏

    Other:

    Eova提供了由Mysql自动生成Oracle脚本的工具类:

    DbUtil.createOracleSql();

    使用方法:

    连接到Mysql数据源上:

    eova.config 配置:

    initSql = true

    系统启动时会将Sql脚本输出在控制台,复制执行即可!