Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
1f88b71e
提交
1f88b71e
authored
12月 18, 2009
作者:
Thomas Mueller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Faster data conversion from BIGINT or INT to DECIMAL.
上级
f9ade50f
显示空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
36 行增加
和
36 行删除
+36
-36
changelog.html
h2/src/docsrc/html/changelog.html
+1
-1
RuleFixed.java
h2/src/main/org/h2/bnf/RuleFixed.java
+4
-4
Right.java
h2/src/main/org/h2/engine/Right.java
+1
-1
JdbcResultSet.java
h2/src/main/org/h2/jdbc/JdbcResultSet.java
+3
-3
JdbcStatement.java
h2/src/main/org/h2/jdbc/JdbcStatement.java
+2
-2
MetaTable.java
h2/src/main/org/h2/table/MetaTable.java
+5
-5
TableFilter.java
h2/src/main/org/h2/table/TableFilter.java
+1
-1
Profiler.java
h2/src/main/org/h2/util/Profiler.java
+1
-0
SortedProperties.java
h2/src/main/org/h2/util/SortedProperties.java
+2
-2
DataType.java
h2/src/main/org/h2/value/DataType.java
+1
-1
Value.java
h2/src/main/org/h2/value/Value.java
+8
-8
ValueBoolean.java
h2/src/main/org/h2/value/ValueBoolean.java
+1
-1
ValueLong.java
h2/src/main/org/h2/value/ValueLong.java
+4
-4
ValueTimestamp.java
h2/src/main/org/h2/value/ValueTimestamp.java
+2
-2
TestBase.java
h2/src/test/org/h2/test/TestBase.java
+0
-1
没有找到文件。
h2/src/docsrc/html/changelog.html
浏览文件 @
1f88b71e
...
@@ -18,7 +18,7 @@ Change Log
...
@@ -18,7 +18,7 @@ Change Log
<h1>
Change Log
</h1>
<h1>
Change Log
</h1>
<h2>
Next Version (unreleased)
</h2>
<h2>
Next Version (unreleased)
</h2>
<ul><li>
-
<ul><li>
Faster data conversion from BIGINT or INT to DECIMAL.
</li></ul>
</li></ul>
<h2>
Version 1.2.126 (2009-12-18)
</h2>
<h2>
Version 1.2.126 (2009-12-18)
</h2>
...
...
h2/src/main/org/h2/bnf/RuleFixed.java
浏览文件 @
1f88b71e
...
@@ -105,13 +105,13 @@ public class RuleFixed implements Rule {
...
@@ -105,13 +105,13 @@ public class RuleFixed implements Rule {
public
String
random
(
Bnf
config
,
int
level
)
{
public
String
random
(
Bnf
config
,
int
level
)
{
Random
r
=
config
.
getRandom
();
Random
r
=
config
.
getRandom
();
switch
(
type
)
{
switch
(
type
)
{
case
YMD:
case
YMD:
return
""
+
(
1800
+
r
.
nextInt
(
200
))
+
"-"
+
(
1
+
r
.
nextInt
(
12
))
+
"-"
+
(
1
+
r
.
nextInt
(
31
));
return
(
1800
+
r
.
nextInt
(
200
))
+
"-"
+
(
1
+
r
.
nextInt
(
12
))
+
"-"
+
(
1
+
r
.
nextInt
(
31
));
case
HMS:
case
HMS:
return
""
+(
r
.
nextInt
(
24
))+
"-"
+(
r
.
nextInt
(
60
))+
"-"
+
(
r
.
nextInt
(
60
));
return
(
r
.
nextInt
(
24
))
+
"-"
+
(
r
.
nextInt
(
60
))
+
"-"
+
(
r
.
nextInt
(
60
));
case
NANOS:
case
NANOS:
return
""
+(
r
.
nextInt
(
100000
)+
r
.
nextInt
(
10000
));
return
""
+
(
r
.
nextInt
(
100000
)
+
r
.
nextInt
(
10000
));
case
ANY_UNTIL_EOL:
case
ANY_UNTIL_EOL:
case
ANY_EXCEPT_SINGLE_QUOTE:
case
ANY_EXCEPT_SINGLE_QUOTE:
case
ANY_EXCEPT_DOUBLE_QUOTE:
case
ANY_EXCEPT_DOUBLE_QUOTE:
...
...
h2/src/main/org/h2/engine/Right.java
浏览文件 @
1f88b71e
...
@@ -56,7 +56,7 @@ public class Right extends DbObjectBase {
...
@@ -56,7 +56,7 @@ public class Right extends DbObjectBase {
}
}
public
Right
(
Database
db
,
int
id
,
RightOwner
grantee
,
int
grantedRight
,
Table
grantedRightOnTable
)
{
public
Right
(
Database
db
,
int
id
,
RightOwner
grantee
,
int
grantedRight
,
Table
grantedRightOnTable
)
{
initDbObjectBase
(
db
,
id
,
""
+
id
,
Trace
.
USER
);
initDbObjectBase
(
db
,
id
,
""
+
id
,
Trace
.
USER
);
this
.
grantee
=
grantee
;
this
.
grantee
=
grantee
;
this
.
grantedRight
=
grantedRight
;
this
.
grantedRight
=
grantedRight
;
this
.
grantedTable
=
grantedRightOnTable
;
this
.
grantedTable
=
grantedRightOnTable
;
...
...
h2/src/main/org/h2/jdbc/JdbcResultSet.java
浏览文件 @
1f88b71e
...
@@ -705,7 +705,7 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
...
@@ -705,7 +705,7 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
debugCode
(
"getBigDecimal("
+
StringUtils
.
quoteJavaString
(
columnLabel
)+
", "
+
scale
+
");"
);
debugCode
(
"getBigDecimal("
+
StringUtils
.
quoteJavaString
(
columnLabel
)+
", "
+
scale
+
");"
);
}
}
if
(
scale
<
0
)
{
if
(
scale
<
0
)
{
throw
Message
.
getInvalidValueException
(
""
+
scale
,
"scale"
);
throw
Message
.
getInvalidValueException
(
""
+
scale
,
"scale"
);
}
}
BigDecimal
bd
=
get
(
columnLabel
).
getBigDecimal
();
BigDecimal
bd
=
get
(
columnLabel
).
getBigDecimal
();
return
bd
==
null
?
null
:
MathUtils
.
setScale
(
bd
,
scale
);
return
bd
==
null
?
null
:
MathUtils
.
setScale
(
bd
,
scale
);
...
@@ -727,10 +727,10 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
...
@@ -727,10 +727,10 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
public
BigDecimal
getBigDecimal
(
int
columnIndex
,
int
scale
)
throws
SQLException
{
public
BigDecimal
getBigDecimal
(
int
columnIndex
,
int
scale
)
throws
SQLException
{
try
{
try
{
if
(
isDebugEnabled
())
{
if
(
isDebugEnabled
())
{
debugCode
(
"getBigDecimal("
+
columnIndex
+
", "
+
scale
+
");"
);
debugCode
(
"getBigDecimal("
+
columnIndex
+
", "
+
scale
+
");"
);
}
}
if
(
scale
<
0
)
{
if
(
scale
<
0
)
{
throw
Message
.
getInvalidValueException
(
""
+
scale
,
"scale"
);
throw
Message
.
getInvalidValueException
(
""
+
scale
,
"scale"
);
}
}
BigDecimal
bd
=
get
(
columnIndex
).
getBigDecimal
();
BigDecimal
bd
=
get
(
columnIndex
).
getBigDecimal
();
return
bd
==
null
?
null
:
MathUtils
.
setScale
(
bd
,
scale
);
return
bd
==
null
?
null
:
MathUtils
.
setScale
(
bd
,
scale
);
...
...
h2/src/main/org/h2/jdbc/JdbcStatement.java
浏览文件 @
1f88b71e
...
@@ -374,7 +374,7 @@ public class JdbcStatement extends TraceObject implements Statement {
...
@@ -374,7 +374,7 @@ public class JdbcStatement extends TraceObject implements Statement {
debugCodeCall
(
"setMaxRows"
,
maxRows
);
debugCodeCall
(
"setMaxRows"
,
maxRows
);
checkClosed
();
checkClosed
();
if
(
maxRows
<
0
)
{
if
(
maxRows
<
0
)
{
throw
Message
.
getInvalidValueException
(
""
+
maxRows
,
"maxRows"
);
throw
Message
.
getInvalidValueException
(
""
+
maxRows
,
"maxRows"
);
}
}
this
.
maxRows
=
maxRows
;
this
.
maxRows
=
maxRows
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
@@ -692,7 +692,7 @@ public class JdbcStatement extends TraceObject implements Statement {
...
@@ -692,7 +692,7 @@ public class JdbcStatement extends TraceObject implements Statement {
// nothing to do
// nothing to do
break
;
break
;
default
:
default
:
throw
Message
.
getInvalidValueException
(
""
+
current
,
"current"
);
throw
Message
.
getInvalidValueException
(
""
+
current
,
"current"
);
}
}
return
false
;
return
false
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
h2/src/main/org/h2/table/MetaTable.java
浏览文件 @
1f88b71e
...
@@ -1078,11 +1078,11 @@ public class MetaTable extends Table {
...
@@ -1078,11 +1078,11 @@ public class MetaTable extends Table {
// JAVA_METHOD
// JAVA_METHOD
alias
.
getJavaMethodName
(),
alias
.
getJavaMethodName
(),
// DATA_TYPE
// DATA_TYPE
""
+
DataType
.
convertTypeToSQLType
(
method
.
getDataType
()),
""
+
DataType
.
convertTypeToSQLType
(
method
.
getDataType
()),
// COLUMN_COUNT INT
// COLUMN_COUNT INT
""
+
method
.
getColumnClasses
().
length
,
""
+
method
.
getColumnClasses
().
length
,
// RETURNS_RESULT SMALLINT
// RETURNS_RESULT SMALLINT
""
+
returnsResult
,
""
+
returnsResult
,
// REMARKS
// REMARKS
replaceNullWithEmpty
(
alias
.
getComment
()),
replaceNullWithEmpty
(
alias
.
getComment
()),
// ID
// ID
...
@@ -1106,11 +1106,11 @@ public class MetaTable extends Table {
...
@@ -1106,11 +1106,11 @@ public class MetaTable extends Table {
// JAVA_METHOD
// JAVA_METHOD
""
,
""
,
// DATA_TYPE
// DATA_TYPE
""
+
DataType
.
convertTypeToSQLType
(
Value
.
NULL
),
""
+
DataType
.
convertTypeToSQLType
(
Value
.
NULL
),
// COLUMN_COUNT INT
// COLUMN_COUNT INT
"1"
,
"1"
,
// RETURNS_RESULT SMALLINT
// RETURNS_RESULT SMALLINT
""
+
returnsResult
,
""
+
returnsResult
,
// REMARKS
// REMARKS
replaceNullWithEmpty
(
agg
.
getComment
()),
replaceNullWithEmpty
(
agg
.
getComment
()),
// ID
// ID
...
...
h2/src/main/org/h2/table/TableFilter.java
浏览文件 @
1f88b71e
...
@@ -673,7 +673,7 @@ public class TableFilter implements ColumnResolver {
...
@@ -673,7 +673,7 @@ public class TableFilter implements ColumnResolver {
}
}
public
String
toString
()
{
public
String
toString
()
{
return
alias
!=
null
?
alias
:
""
+
table
;
return
alias
!=
null
?
alias
:
table
.
toString
()
;
}
}
/**
/**
...
...
h2/src/main/org/h2/util/Profiler.java
浏览文件 @
1f88b71e
...
@@ -25,6 +25,7 @@ public class Profiler implements Runnable {
...
@@ -25,6 +25,7 @@ public class Profiler implements Runnable {
"java.lang.Thread.dumpThreads,"
+
"java.lang.Thread.dumpThreads,"
+
"java.net.PlainSocketImpl.socketAccept,"
+
"java.net.PlainSocketImpl.socketAccept,"
+
"java.net.SocketInputStream.socketRead0,"
+
"java.net.SocketInputStream.socketRead0,"
+
"java.net.SocketOutputStream.socketWrite0,"
+
"java.lang.UNIXProcess.waitForProcessExit,"
+
"java.lang.UNIXProcess.waitForProcessExit,"
+
"java.lang.Object.wait,"
+
"java.lang.Object.wait,"
+
"java.lang.Thread.sleep,"
+
"java.lang.Thread.sleep,"
+
...
...
h2/src/main/org/h2/util/SortedProperties.java
浏览文件 @
1f88b71e
...
@@ -54,7 +54,7 @@ public class SortedProperties extends Properties {
...
@@ -54,7 +54,7 @@ public class SortedProperties extends Properties {
* @return the value if set, or the default value if not
* @return the value if set, or the default value if not
*/
*/
public
static
boolean
getBooleanProperty
(
Properties
prop
,
String
key
,
boolean
def
)
{
public
static
boolean
getBooleanProperty
(
Properties
prop
,
String
key
,
boolean
def
)
{
String
value
=
prop
.
getProperty
(
key
,
""
+
def
);
String
value
=
prop
.
getProperty
(
key
,
""
+
def
);
try
{
try
{
return
Boolean
.
valueOf
(
value
).
booleanValue
();
return
Boolean
.
valueOf
(
value
).
booleanValue
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
@@ -72,7 +72,7 @@ public class SortedProperties extends Properties {
...
@@ -72,7 +72,7 @@ public class SortedProperties extends Properties {
* @return the value if set, or the default value if not
* @return the value if set, or the default value if not
*/
*/
public
static
int
getIntProperty
(
Properties
prop
,
String
key
,
int
def
)
{
public
static
int
getIntProperty
(
Properties
prop
,
String
key
,
int
def
)
{
String
value
=
prop
.
getProperty
(
key
,
""
+
def
);
String
value
=
prop
.
getProperty
(
key
,
""
+
def
);
try
{
try
{
return
MathUtils
.
decodeInt
(
value
);
return
MathUtils
.
decodeInt
(
value
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
h2/src/main/org/h2/value/DataType.java
浏览文件 @
1f88b71e
...
@@ -748,7 +748,7 @@ public class DataType {
...
@@ -748,7 +748,7 @@ public class DataType {
case
Types
.
ARRAY
:
case
Types
.
ARRAY
:
return
Value
.
ARRAY
;
return
Value
.
ARRAY
;
default
:
default
:
throw
Message
.
getSQLException
(
ErrorCode
.
UNKNOWN_DATA_TYPE_1
,
""
+
sqlType
);
throw
Message
.
getSQLException
(
ErrorCode
.
UNKNOWN_DATA_TYPE_1
,
""
+
sqlType
);
}
}
}
}
...
...
h2/src/main/org/h2/value/Value.java
浏览文件 @
1f88b71e
...
@@ -154,8 +154,8 @@ public abstract class Value {
...
@@ -154,8 +154,8 @@ public abstract class Value {
public
static
final
int
TYPE_COUNT
=
STRING_FIXED
+
1
;
public
static
final
int
TYPE_COUNT
=
STRING_FIXED
+
1
;
private
static
SoftReference
<
Value
[]>
softCache
=
new
SoftReference
<
Value
[]>(
null
);
private
static
SoftReference
<
Value
[]>
softCache
=
new
SoftReference
<
Value
[]>(
null
);
private
static
final
BigDecimal
MAX_LONG_DECIMAL
=
new
BigDecimal
(
""
+
Long
.
MAX_VALUE
);
private
static
final
BigDecimal
MAX_LONG_DECIMAL
=
BigDecimal
.
valueOf
(
Long
.
MAX_VALUE
);
private
static
final
BigDecimal
MIN_LONG_DECIMAL
=
new
BigDecimal
(
""
+
Long
.
MIN_VALUE
);
private
static
final
BigDecimal
MIN_LONG_DECIMAL
=
BigDecimal
.
valueOf
(
Long
.
MIN_VALUE
);
/**
/**
* Get the SQL expression for this value.
* Get the SQL expression for this value.
...
@@ -592,15 +592,15 @@ public abstract class Value {
...
@@ -592,15 +592,15 @@ public abstract class Value {
// convert to string is required for JDK 1.4
// convert to string is required for JDK 1.4
switch
(
getType
())
{
switch
(
getType
())
{
case
BOOLEAN:
case
BOOLEAN:
return
ValueDecimal
.
get
(
new
BigDecimal
(
getBoolean
().
booleanValue
()
?
"1"
:
"0"
));
return
ValueDecimal
.
get
(
BigDecimal
.
valueOf
(
getBoolean
().
booleanValue
()
?
1
:
0
));
case
BYTE:
case
BYTE:
return
ValueDecimal
.
get
(
new
BigDecimal
(
""
+
getByte
()));
return
ValueDecimal
.
get
(
BigDecimal
.
valueOf
(
getByte
()));
case
SHORT:
case
SHORT:
return
ValueDecimal
.
get
(
new
BigDecimal
(
""
+
getShort
()));
return
ValueDecimal
.
get
(
BigDecimal
.
valueOf
(
getShort
()));
case
INT:
case
INT:
return
ValueDecimal
.
get
(
new
BigDecimal
(
""
+
getInt
()));
return
ValueDecimal
.
get
(
BigDecimal
.
valueOf
(
getInt
()));
case
LONG:
case
LONG:
return
ValueDecimal
.
get
(
new
BigDecimal
(
""
+
getLong
()));
return
ValueDecimal
.
get
(
BigDecimal
.
valueOf
(
getLong
()));
case
DOUBLE:
{
case
DOUBLE:
{
double
d
=
getDouble
();
double
d
=
getDouble
();
if
(
Double
.
isInfinite
(
d
)
||
Double
.
isNaN
(
d
))
{
if
(
Double
.
isInfinite
(
d
)
||
Double
.
isNaN
(
d
))
{
...
@@ -611,7 +611,7 @@ public abstract class Value {
...
@@ -611,7 +611,7 @@ public abstract class Value {
case
FLOAT:
{
case
FLOAT:
{
float
f
=
getFloat
();
float
f
=
getFloat
();
if
(
Float
.
isInfinite
(
f
)
||
Float
.
isNaN
(
f
))
{
if
(
Float
.
isInfinite
(
f
)
||
Float
.
isNaN
(
f
))
{
throw
Message
.
getSQLException
(
ErrorCode
.
DATA_CONVERSION_ERROR_1
,
""
+
f
);
throw
Message
.
getSQLException
(
ErrorCode
.
DATA_CONVERSION_ERROR_1
,
""
+
f
);
}
}
return
ValueDecimal
.
get
(
new
BigDecimal
(
f
));
return
ValueDecimal
.
get
(
new
BigDecimal
(
f
));
}
}
...
...
h2/src/main/org/h2/value/ValueBoolean.java
浏览文件 @
1f88b71e
...
@@ -34,7 +34,7 @@ public class ValueBoolean extends Value {
...
@@ -34,7 +34,7 @@ public class ValueBoolean extends Value {
private
final
Boolean
value
;
private
final
Boolean
value
;
private
ValueBoolean
(
boolean
value
)
{
private
ValueBoolean
(
boolean
value
)
{
this
.
value
=
Boolean
.
valueOf
(
""
+
value
);
this
.
value
=
Boolean
.
valueOf
(
value
);
}
}
public
int
getType
()
{
public
int
getType
()
{
...
...
h2/src/main/org/h2/value/ValueLong.java
浏览文件 @
1f88b71e
...
@@ -32,8 +32,8 @@ public class ValueLong extends Value {
...
@@ -32,8 +32,8 @@ public class ValueLong extends Value {
private
static
final
int
STATIC_SIZE
=
100
;
private
static
final
int
STATIC_SIZE
=
100
;
private
static
final
ValueLong
[]
STATIC_CACHE
;
private
static
final
ValueLong
[]
STATIC_CACHE
;
private
static
final
BigInteger
MIN
=
new
BigInteger
(
""
+
Long
.
MIN_VALUE
);
private
static
final
BigInteger
MIN
=
BigInteger
.
valueOf
(
Long
.
MIN_VALUE
);
private
static
final
BigInteger
MAX
=
new
BigInteger
(
""
+
Long
.
MAX_VALUE
);
private
static
final
BigInteger
MAX
=
BigInteger
.
valueOf
(
Long
.
MAX_VALUE
);
private
final
long
value
;
private
final
long
value
;
...
@@ -120,8 +120,8 @@ public class ValueLong extends Value {
...
@@ -120,8 +120,8 @@ public class ValueLong extends Value {
// if(result / value == other.value && result / other.value == value) {
// if(result / value == other.value && result / other.value == value) {
// return ValueLong.get(result);
// return ValueLong.get(result);
//}
//}
BigInteger
bv
=
new
BigInteger
(
""
+
value
);
BigInteger
bv
=
BigInteger
.
valueOf
(
value
);
BigInteger
bo
=
new
BigInteger
(
""
+
other
.
value
);
BigInteger
bo
=
BigInteger
.
valueOf
(
other
.
value
);
BigInteger
br
=
bv
.
multiply
(
bo
);
BigInteger
br
=
bv
.
multiply
(
bo
);
if
(
br
.
compareTo
(
MIN
)
<
0
||
br
.
compareTo
(
MAX
)
>
0
)
{
if
(
br
.
compareTo
(
MIN
)
<
0
||
br
.
compareTo
(
MAX
)
>
0
)
{
throw
getOverflow
();
throw
getOverflow
();
...
...
h2/src/main/org/h2/value/ValueTimestamp.java
浏览文件 @
1f88b71e
...
@@ -143,10 +143,10 @@ public class ValueTimestamp extends Value {
...
@@ -143,10 +143,10 @@ public class ValueTimestamp extends Value {
public
Value
convertScale
(
boolean
onlyToSmallerScale
,
int
targetScale
)
throws
SQLException
{
public
Value
convertScale
(
boolean
onlyToSmallerScale
,
int
targetScale
)
throws
SQLException
{
if
(
targetScale
<
0
||
targetScale
>
DEFAULT_SCALE
)
{
if
(
targetScale
<
0
||
targetScale
>
DEFAULT_SCALE
)
{
// TODO convertScale for Timestamps: may throw an exception?
// TODO convertScale for Timestamps: may throw an exception?
throw
Message
.
getInvalidValueException
(
""
+
targetScale
,
"scale"
);
throw
Message
.
getInvalidValueException
(
""
+
targetScale
,
"scale"
);
}
}
int
nanos
=
value
.
getNanos
();
int
nanos
=
value
.
getNanos
();
BigDecimal
bd
=
new
BigDecimal
(
""
+
nanos
);
BigDecimal
bd
=
BigDecimal
.
valueOf
(
nanos
);
bd
=
bd
.
movePointLeft
(
9
);
bd
=
bd
.
movePointLeft
(
9
);
bd
=
MathUtils
.
setScale
(
bd
,
targetScale
);
bd
=
MathUtils
.
setScale
(
bd
,
targetScale
);
bd
=
bd
.
movePointRight
(
9
);
bd
=
bd
.
movePointRight
(
9
);
...
...
h2/src/test/org/h2/test/TestBase.java
浏览文件 @
1f88b71e
...
@@ -22,7 +22,6 @@ import java.sql.Types;
...
@@ -22,7 +22,6 @@ import java.sql.Types;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.LinkedList
;
import
java.util.LinkedList
;
import
org.h2.jdbc.JdbcConnection
;
import
org.h2.jdbc.JdbcConnection
;
import
org.h2.message.TraceSystem
;
import
org.h2.message.TraceSystem
;
import
org.h2.store.FileLock
;
import
org.h2.store.FileLock
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论