最近用Struts开发,请问怎样在Action中生成唯一标识符呢?
我的数据库对应字段是uniqueidentifier,因此需要生成唯一标识符,请问怎么生成这种GUID呢?
我的数据库对应字段是uniqueidentifier,因此需要生成唯一标识符,请问怎么生成这种GUID呢?
解决方案 »
- 推荐一下好用的javaWeb框架吧?
- jsp页面间传值出现乱码
- 怎么将数据库中的数据添加到下拉表单中?
- microsoft media server 支持ram,mpge4等格式吗?
- 我的第一个STRUTS例子怎么运行不了
- jsp设计第三版中的一些问题。50分请高手指教
- 紧急求助!紧急求助!紧急求助!紧急求助!参与者都得分。
- ireport设计报表时 子报表是做什么用的?不太明白
- 在JBuilder x中怎么配置Web logic server 8.1
- 大家讨论一下,考研好还是考证好呢?如果考证的话,考什么证比较好呢?
- 有2个界面,一个是客户端,一个是服务器.根据数据库的变换做相应的反应
- 有关tomcat的数据源配置
主键由外部程序负责生成,在 save() 之前指定一个。//需要手动填主键(hibernate不会自动生成主键) “hilo”
通过hi/lo 算法实现的主键生成机制,需要额外的数据库表或字段提供高位值来源。 “seqhilo”
与hilo 类似,通过hi/lo 算法实现的主键生成机制,需要数据库中的 Sequence,适用于支持 Sequence 的数据库,如Oracle。
“increment”
主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。这种方式可能产生的问题是:不能在集群下使用(即,只使用于单机)。 “identity”
采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL 中的主键生成机制。
“sequence”
采用数据库提供的 sequence 机制生成主键。如 Oralce 中的Sequence。
“native”
由 Hibernate 根据使用的数据库自行判断采用 identity、hilo、sequence 其中一种作为主键生成方式(都判断一遍效率低)。 “uuid.hex”
由 Hibernate 基于128 位 UUID 算法 生成16 进制数值(编码后以长度32 的字符串表示)作为主键(生成数字、字母混排的主键,所以OK)。 “uuid.string”
与uuid.hex 类似,只是生成的主键未进行编码(长度16),不能应用在 PostgreSQL 数据库中。 “foreign”
使用另外一个相关联的对象的标识符作为主键(用于主外键关联时用)。
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
<class name="model.Certificate" table="certificate" lazy="true">
<id name="id">
<generator class="foreign">
<param name="property">stu</param>
</generator>
</id>
<property name="describe" column="`describe`" type="string" />
<one-to-one name="stu" class="model.Student" fetch="select" constrained="true" cascade="none"/>
</class>
</hibernate-mapping>
{
public static void main(String[] args)
{
UUID uuid = UUID.randomUUID();
String a = uuid.toString(); System.out.println(uuid.toString()); System.out.println(a.length()); }
}
格式一样而生成方式不一样吗?
可不可以简单介绍一下?谢谢