ORACLE ID自增长有两种方法:
一、通过序列(sequence)或触发器(trigger)实现ID自增长:
序列是Oracle数据库中用来生成唯一数值的对象,可以类比于MySQL中的自增长。使用序列递增生成的数字当作主键时,防止并发访问时产生重复的主键值。
触发器可以在INSERT、UPDATE和DELETE操作执行之前或之后自动运行PL/SQL代码。对于使用序列生成自增长主键的情况,可以通过在插入语句之前定义一个触发器,在INSERT语句执行时触发自动生成下一个序列值。
这种方式适用于直接使用JDBC连接数据库:这种方式将主键自增长的任务完全交给数据库,我们无需在代码层面上进行任何控制。
二、通过序列(sequence)和hibernate(javaweb框架)配置实现自增长:
这种方式适用于通过Hibernate连接数据库的方式:这种方式在数据库上创建序列,通过配置在POJO类上的注释,让Hibernate去调用数据库的序列实现自增长。
以上这两种方式都是通过Oracle的序列实现自增长,但第一种通过数据库的触发器在插入的时候自动插入主键。而后者则由Hibernate自动完成获取主键,插入主键这一操作。