`
houzhaowei
  • 浏览: 499208 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle 自增长 字段,spring、hibernate 的解决方式

阅读更多
1.建立表 my_table

create table my_table
(
      ID          NUMBER(10) not null,
      BUYER       CHAR(20) not null,
      MERCHANDISE VARCHAR2(50) not null,
      QUANTITY    LONG not null,
      UNITPRICE   NUMBER(10,2) not null,
      TOTALPRICE NUMBER(20,4),
      DESCRIPTION NVARCHAR2(1000),
      PRIMARY KEY("ID")
)

2.建立一个序列 SEQUENCE

CREATE SEQUENCE my_table_id_seq
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
NOCACHE -- 不建缓冲区

3.为 my_table 表建立一个插入的触发器

create or replace trigger 触发器名字
before insert on mytable
for each row
begin
if (:new.id is null) then
    select my_table_id_seq.nextval into :new.id from dual;
end if;
end;

4.这样就可以插入不带ID的记录了

insert into mytable(buyer,merchandise,quantity,unitprice)values("ABC","Product_ABC",200,10);

5.用spring 的hibernate 来操作自增长时如同操作 sqlserver 和mysql 一样方便了

        <id name="id" type="long">
            <column name="ID" />
            <generator class="increment" />
        </id>

------
本转载作者后记: 我目前做的公司商业系统,从mysql中移植到oracle,mysql 中用的是自增列,转到oracle后这方面没改居然没出问题,起初很纳闷,后来发现是很hibernate  的功劳
但目前还并不确定这样是否稳妥,因为之前确实没这么干过。。  望行业高手路过给与指点~
分享到:
评论

相关推荐

    hibernateSynchronizer与spring集成

    但在MySQL这样的数据库中,应将其更改为`identity`,因为MySQL使用自动增长的ID字段作为主键。这样,Hibernate将根据数据库特性自动处理主键生成。 接下来,我们需要配置Spring以使用Hibernate。在`...

    (高清版)精通 Hibernate_Java 对象持久化技术详解(第2版).pdf

    - **主键生成策略**:如自增长、分配值、序列等方式。 - **属性映射**:将Java类中的属性与数据库表中的字段进行一一对应。 ### 知识点六:Hibernate缓存机制 - **一级缓存**:每个Session都有自己的缓存,称为一...

    Hibernate4实战之Hibernate4注解零配置

    在Java的ORM框架Hibernate4中,注解零配置是一种简化持久化对象(POJOs)映射的方法,它允许开发者避免使用XML配置文件,而是直接在Java类和属性上使用注解来描述数据库表和字段的映射关系。以下是关于Hibernate4...

    SSH考试题目面试题目.pdf

    本文将从给定的文件信息中生成相关知识点,包括语言和环境、数据库设计、J2EE技术点、Struts、Hibernate、Spring等。 语言和环境 本考试题目要求使用J2EE技术,环境要求Eclipse3.2和Oracle 9i。J2EE(Java 2 ...

    sql主键产生器

    6. **第三方库**:在编程语言层面,有许多库和框架提供了主键生成的功能,如Java的Hibernate或Spring框架,它们可以与数据库交互,自动处理主键生成。 使用"SQL主键产生器"工具的优点在于,它可以帮助开发者避免...

    computerPDF (1).pdf

    - **第一步**:创建数据库表,包括主键、序列或自动增长字段。 - **第二步**:向数据库表中添加测试数据,至少包含3条记录。 - **第三步**:使用 Eclipse 或 MyEclipse 创建 Web 工程,配置好所需的框架支持。 - **...

    computerPDF.pdf

    - 设置主键自增长或使用序列。 - 添加测试数据,每个表至少两条记录。 2. **项目初始化**: - 使用Eclipse/MyEclipse创建名为`WorkOrder`的Web项目。 - 添加所需的框架支持(如Struts2/SpringMVC、Spring、...

    Java开发工程师试卷四(~).doc

    `identity`适用于支持自动增长字段的数据库(如SQL Server),`sequence`适用于支持序列的数据库(如Oracle),`native`则根据数据库类型选择合适的策略。 5. **Oracle字符串连接**:在Oracle SQL中,连接字符串的...

    J2EE课程总结

    - 持久化是指将内存中的对象保存到磁盘上持久化存储介质的过程,Hibernate提供了一套完整的解决方案。 **5. 事务,并发** - 事务管理和并发控制是持久层框架的关键特性之一,Hibernate支持多种事务隔离级别和锁机制...

    疯狂的IT人最新整理的Java EE面试总结

    - 与Spring和Hibernate集成更加紧密。 #### 6. Hibernate与MyBatis的选择 - **Hibernate**: - 完全的对象关系映射解决方案。 - 自动处理SQL语句和结果集。 - 提供缓存机制和事务管理。 - **MyBatis**: - 半...

    重庆三峡学院毕业设计(论文)开题报告

    在当前高等教育领域,随着学分制的普及以及学生个性化学习需求的增长,如何高效、便捷地进行课程选择成为了一个亟待解决的问题。重庆三峡学院为了应对这一挑战,计划开发一套基于B/S(浏览器/服务器)模式的选课系统...

    SpringBoot&nbsp;&nbsp;jdbctemplate使用方法解析

    `book_id`为主键,自增长。 在Java代码层面,我们定义了一个`Book`实体类,用于映射数据库中的记录。实体类包含了`id`、`book_name`和`price`属性,以及对应的getter和setter方法。 然后,我们创建一个`...

Global site tag (gtag.js) - Google Analytics