sqlserver字符串判断函数(解决sql server保存对象字符串转换成uniqueidentifier失败的问题)
sqlserver字符串判断函数
解决sql server保存对象字符串转换成uniqueidentifier失败的问题一、 背景介绍
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保存对象字符串转换成uniqueidentifier失败的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
- myeclipse连接mysql数据库的方法(教你用eclipse连接mysql数据库)
- mysql 如何选择隔离级别(全面解析MySQL中的隔离级别)
- SQLite数据类型
- python 数据库实现学生管理系统(python+mysql实现教务管理系统)
- mysql数据库三种模式(MySQL数据库是如何实现XA规范的)
- sqlserver最大数据导入量(SQL Server批量插入数据案例详解)
- MySQL自定义函数
- mysql的索引及其介绍总结(浅析MysQL B-Tree 索引)
- mysql8.0中如何导入数据(mysql8.0.20数据目录迁移的方法)
- 如何看idea连接mysql数据库(IDEA 链接Mysql数据库并执行查询操作的完整代码)
- mysql8.0.26安装教程(mysql 8.0.22压缩包完整安装与配置教程图解亲测安装有效)
- dedecms标签长度(dedecms使用SQL命令批量替换指定字符串的方法)
- mysql行级锁使用教程(浅析MySQL的lru链表)
- sqlserver使用说明(SQL Server视图的讲解)
- MySQL定时任务(EVENT事件)如何配置详解(MySQL定时任务EVENT事件如何配置详解)
- SQL Server中如何将数据导出为XML或Json文件
- 手机QQ与小米路由器在一起 明天揭晓,敬请期待(手机QQ与小米路由器在一起)
- 小米音乐与 QQ 音乐合作,便捷迁移会员(小米音乐与QQ音乐合作)
- 小米推出米兔儿童电话手表奥特曼版,799 元,支持微信 QQ(小米推出米兔儿童电话手表奥特曼版)
- 贾怀胤唱《白龙马》 炸场 了 没想到京剧还能这么玩(贾怀胤唱白龙马)
- 白龙马的改编学生版,快来看看(白龙马的改编学生版)
- 萌娃唱《白龙马》走红,那生动的小表情,网友直呼 简直是戏精(萌娃唱白龙马走红)
热门推荐
- 阿里云盘挂载云服务器(阿里云主机的安装硬盘挂载数据盘加载或修改/www)
- 用html制作一个简易小游戏(Html5写一个简单的俄罗斯方块小游戏)
- python内置函数一览表(Python面向对象程序设计构造函数和析构函数用法分析)
- jquery的each的用法
- phpstudy报错(phpStudy运行帝国备份王出错解决方法)
- docker时区问题和迁移数据问题(docker时区问题和迁移数据问题)
- sqlserver分组查询(sql server如何利用开窗函数over进行分组统计)
- ASP.NET参数化查询
- python虚拟环境和包使用教程(在win10和linux上分别安装Python虚拟环境的方法步骤)
- 移动端touch事件
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9