forked from microsoft/mssql-jdbc
/
SQLServerJdbc43.java
54 lines (42 loc) · 1.78 KB
/
SQLServerJdbc43.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
* Microsoft JDBC Driver for SQL Server Copyright(c) Microsoft Corporation All rights reserved. This program is made
* available under the terms of the MIT License. See the LICENSE file in the project root for more information.
*/
package com.microsoft.sqlserver.jdbc;
import java.sql.BatchUpdateException;
/**
* Shims for JDBC 4.3 JAR.
*
* JDBC 4.3 public methods should always check the SQLServerJdbcVersion first to make sure that they are not operable in
* any earlier driver version. That is, they should throw an exception, be a no-op, or whatever.
*/
final class DriverJDBCVersion {
// The 4.3 driver is compliant to JDBC 4.3.
static final int major = 4;
static final int minor = 3;
static final void checkSupportsJDBC43() {
return;
}
static final void throwBatchUpdateException(SQLServerException lastError,
long[] updateCounts) throws BatchUpdateException {
throw new BatchUpdateException(lastError.getMessage(), lastError.getSQLState(), lastError.getErrorCode(),
updateCounts, new Throwable(lastError.getMessage()));
}
private static double jvmVersion = Double.parseDouble(Util.SYSTEM_SPEC_VERSION);
static SQLServerConnection getSQLServerConnection(String parentInfo) throws SQLServerException {
return jvmVersion >= 9 ? new SQLServerConnection43(parentInfo) : new SQLServerConnection(parentInfo);
}
/** Client process ID sent during login */
private static int pid = 0;
static {
long pidLong = 0;
try {
pidLong = ProcessHandle.current().pid();
} catch (NoClassDefFoundError e) { // ProcessHandle is Java 9+
}
pid = (pidLong > Integer.MAX_VALUE) ? 0 : (int) pidLong;
}
static int getProcessId() {
return pid;
}
}