加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL server中字符串转类型怎么办 如何处理

发布时间:2023-06-09 11:24:01 所属栏目:MsSql教程 来源:
导读:今天小编跟大家讲解下有关“SQL server中字符串转类型怎么办,如何解决”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。一、 背景介绍web应用采用的

今天小编跟大家讲解下有关“SQL server中字符串转类型怎么办,如何解决”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。

一、 背景介绍

web应用采用的是ssh框架,数据库使用的sql server2014版本。

二、问题:

客户要求,ID列的数据类型必须是uniqueidentifier,一开始实体类的ID设计成java.lang.String类型;映射文件中ID的增长方式是uuid.hex

private java.lang.String id;

public java.lang.String getId(){

return id;

}

public void setId(java.lang.String id){

this.id=id;

}

<id name="id" column="ID" type="java.lang.String">

<generator class="uuid.hex"></generator>

</id>

在执行保存时报错:将字符串uniqueidentifier 时失败。

三、解决方案:

将映射文件中ID的增长方式修改为“assigned”,在程序中赋值。

/*映射文件*/

<id name="id" column="ID" type="java.lang.String">

<generator class="assigned"></generator>

</id>

/*赋值代码*/

UUID uuid = java.util.UUID.randomUUID();

object.setId(uuid.toString);

this.save(object);

附:创建表的语句

CREATE TABLE tableName

(

ID UNIQUEIDENTIFIER,

--省略其他代码

);

补充知识:SQLServer中uniqueidentifier数据类型理解

uniqueidentifier可以理解为全局唯一标示符(GUID),可以使用newid函数初始化值,将字符串常量转换为如下形式(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字)。

例如,6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 uniqueidentifier 值。

比较运算符可与 uniqueidentifier 值一起使用。然而,排列并非通过比较两个值的位模式来实现。允许对 uniqueidentifier 值执行的操作只有比较 (=, <>, <, >, <=, >=) 和检查 NULL(IS NULL 和 IS NOT NULL)。

不允许使用其它算术运算符。所有的列约束及属性(IDENTITY 除外)均允许用于 uniqueidentifier 数据类型。

declare @myid uniqueidentifier

set @myid=newid()

print 'Value of @myid is '+cast(@myid as varchar(255))

每次运行以上程序返回不同的uniqueidentifier

uniqueidentifier 数据类型不象IDENTITY 属性那样为新插入的行自动生成新的ID。

为了得到新的 uniqueidentifier 值,表必须具有一个指定 NEWID 函数的 DEFAULT 子句,或使用 NEWID 函数的 INSERT 语句:

CREATE TABLE MyUniqueTable

(UniqueColumn UNIQUEIDENTIFIER DEFAULT NEWID(),

Characters VARCHAR(10) )

GO

INSERT INTO MyUniqueTable(Characters) VALUES ('abc')

INSERT INTO MyUniqueTable VALUES (NEWID(), 'def')

GO

到此这篇关于“SQL server中字符串转类型怎么办,如何解决”的文章就介绍到这了,更多相关SQL server中字符串转类型怎么办,如何解决内容,小编将为大家输出更多高质量的实用文章!

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章