如题 谢谢

解决方案 »

  1.   

    http://blog.sina.com.cn/s/reader_5016113a01008ahj.html
    hilo标识符生成器
    由Hibernate按照一种high/low算法来生成标识符,它从数据库的特定表字段中获取high值,配置映射文件如下:
    <hibernate-mapping>
        <class name=”mypack.IncrementTester” table=”…”>
        <id name=”id” type=”long” column=”ID”>
            <meta attribute=”scope-set”>private</meta>
            <generator class=”hile”>
                <parm name=”talbe”>hi_value</param>
                <parm name=”column”>next_value</param>
                <parm name=”max_lo”>100</param>
            </generator>
        </id>
        …
        </class>
    </hibernate-mapping>
    运行hbm2java生成的SQL代码包括:
    create table hi_value(
        next_value integer
    )
    insert into hi_value values(0);
    Hibernate需要在一个新的数据库连接中创建新的事务读取并修改hi_value表中的next_value来生成主键值,它的优点是适用于所有数据库,OID必须为long,int或short类型,缺点是只能在一个数据库中保证惟一,从应用服务器的数据源获得数据库连接时候无法无法使用 hilo,因为不能保证是新的数据库连接,对于这种情况,如果数据库支持序列,可用seqhilo生成器
      

  2.   

    谢谢楼上 看了您的回复 我了解了一些 
    我们抛开hibernate不说 我想知道的是 程序怎么样和数据库中的ID同步 而不会造成重复ID
    用jdbc谈谈吧 我想知道的是这种算法的原理 谢谢了
      

  3.   

    有些东西,到google搜一下就能找到好多,特别是这类概念性的东西
      

  4.   

    =.= 我也知道用google 但是实在没搜索到 我才来问的
      

  5.   

    最终还是没有理想的答案 失望ing