哪种Java数据类型适合处理SqlServer的rowversion数据类型?

问题描述 投票:-1回答:1

Sql Server的rowversion数据类型可以作为乐观并发使用,我面临着在Dropwizard Jdbi项目中使用的问题(用Java编写)。我正面临着在Dropwizard Jdbi项目中使用的问题(用Java编写)。

目前,我正在使用下面这行代码将 rowversion sql server 数据类型转换为 java。这行代码写在DAO mapper中(mapper将数据库结果集转换为java模型。)

ByteArray  version = getBytes("version")

请帮我找出处理这种类型情况的正确方法。

java sql-server dropwizard jdbi
1个回答
0
投票

一个字节数组或一个无符号长。 8个字节是一个单调递增的整数的256基数表示。 这与大恩迪安(又称网络字节序)64位无符号整数相同。

例如

use tempdb
go
drop table if exists t

create table t(id int identity, rv rowversion)

insert into t default values
insert into t default values
insert into t default values
insert into t default values


SELECT *, CAST(rv as bigint)
FROM T

产出

id          rv                 
----------- ------------------ --------------------
1           0x000000000000085E 2142
2           0x000000000000085F 2143
3           0x0000000000000860 2144
4           0x0000000000000861 2145

(4 rows affected)
© www.soinside.com 2019 - 2024. All rights reserved.