频道栏目
首页 > 资讯 > 其他 > 正文

ssm和ssh框架中,oracle数据库,表主键自增如何解决

17-05-19        来源:[db:作者]  
收藏   我要投稿

ssm和ssh框架中,oracle数据库,表主键自增如何解决

1.ssh框架:
hibernate反向生成实体类中映射文件一般如下:


     
            
 

oracle中添加自增序列:

-- Create sequence 
create sequence BASI_SEQ
minvalue 1
maxvalue 999999999999999999999999999
start with 61
increment by 1
cache 20;

然后在映射文件中修改如下:
BASI_SEQ为oracle中设置的自增序列名。

 
     
            BASI_SEQ
            
 

在service中实现添加方法时不用理会主键,会自行增加。

2.ssm框架
通过在oracle中创建主键自增触发器来完成。
如下表:

-- Create table
create table TEST
(
  ID       NUMBER(16) not null,
  QUESTION VARCHAR2(100),
  ANSWER   VARCHAR2(4000),
  FLAG     NUMBER(8)
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints 
alter table TEST
  add constraint TEST_PK primary key (ID)
  using index 
  tablespace USERS
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

创建自增序列:

-- Create sequence 
create sequence TEST_SEQ
minvalue 1
maxvalue 9999999999999999999999999999
start with 23
increment by 1
cache 20;

添加触发器:

create or replace trigger test_trigger

  before insert on test  

  for each row

begin

  select test_seq.nextval into :new.id from dual;

mapping.xml文件中增加语句如下:


        
        
        insert into TEST
         (QUESTION, ANSWER,FLAG)
        values 
        (#{question,jdbcType=VARCHAR},#{answer,jdbcType=VARCHAR},#{flag,jdbcType=DECIMAL})
    

以上就完成了ssm框架中对主键自增的处理。

相关TAG标签
上一篇:C++类的组合和前向引用声明
下一篇:Struts2_全局类型转换器
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站