Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det finns ett antal skillnader mellan datatyperna java-programmeringsspråk och SQL Server-datatyper. Microsoft JDBC-drivrutinen för SQL Server hjälper till att underlätta dessa skillnader genom olika typer av konverteringar.
Teckentyper
Datatyperna för JDBC-teckensträngen är CHAR, VARCHAR och LONGVARCHAR. JDBC-drivrutinen har stöd för JDBC 4.0-API:et. I JDBC 4.0 kan JDBC-teckensträngens datatyper också vara NCHAR, NVARCHAR och LONGNVARCHAR. Dessa nya teckensträngstyper underhåller inbyggda Java-teckentyper i Unicode-format och tar bort behovet av att utföra ansi-till-Unicode- eller Unicode-till-ANSI-konvertering.
| Typ | Description |
|---|---|
| Fast längd | Datatyperna SQL Server char och nchar mappas direkt till JDBC CHAR - och NCHAR-typerna . Det här är typer med fast längd med utfyllnad som tillhandahålls av servern om kolumnen har SET ANSI_PADDING ON. Utfyllnad är alltid aktiverat för nchar, men för tecken, i det fall där kolumnerna för servertecken inte är vadderade, lägger JDBC-drivrutinen till utfyllnad. |
| Variabel längd | SQL Server varchar och nvarchar typerna mappas direkt till JDBC VARCHAR och NVARCHAR typerna. |
| Long | SQL Server text och ntext -typerna mappas till JDBC-typen LONGVARCHAR respektive LONGNVARCHAR. Det här är inaktuella typer som börjar i SQL Server 2005 (9.x), så du bör använda stora värdetyper, varchar(max) eller nvarchar(max) i stället. Med hjälp av metoderna Uppdatera<numerisk typ> och updateObject (int, java.lang.Object) misslyckas de mot text - och ntextserverkolumner . Men att använda metoden setObject med en angiven teckenkonverteringstyp stöds mot text och ntext serverkolumner. |
Binära strängtyper
De binära JDBC-strängtyperna är BINARY, VARBINARY och LONGVARBINARY.
| Typ | Description |
|---|---|
| Fixerad längd | SQL Server-typen binary mappar direkt till JDBC-typen BINARY. Det här är en typ av fast längd med utfyllnad som tillhandahålls av servern om kolumnen har SET ANSI_PADDING ON. När teckenkolumnerna på servern inte är utfyllda lägger JDBC-drivrutinen till vaddering. SQL Server-timestamp-typen är en JDBC BINARY-typ med fast längd på 8 byte. |
| Variabel längd | SQL Server-typen varbinary mappar till JDBC-typen VARBINARY. udt-typen i SQL Server motsvarar en VARBINARY-typ i JDBC. |
| Long | SQL Server image-typen mappar till JDBC LONGVARBINARY-typen. Den här typen är inaktuell från och med SQL Server 2005 (9.x), så du bör använda en stor värdetyp, varbinary(max) i stället. |
Exakta numeriska typer
JDBC:s exakta numeriska typer mappas direkt till motsvarande SQL Server-typer.
| Typ | Description |
|---|---|
| BIT | JDBC BIT-typen representerar en enda bit som kan vara 0 eller 1. Detta mappar till en SQL Server bittyp. |
| tinyint | JDBC TINYINT-typen representerar en enda byte. Detta mappar till en SQL Server tinyint-typ . |
| SMALLINT | JDBC SMALLINT-typen representerar ett signerat 16-bitars heltal. Detta mappar till en SQL Server-typen smallint. |
| INTEGER | JDBC-INTEGER-typen representerar ett signerat 32-bitars heltal. Detta mappar till en SQL Server int-typ. |
| BIGINT | JDBC BIGINT-typen representerar ett signerat 64-bitars heltal. Detta motsvarar en SQL Server bigint-typ. |
| NUMERISK | JDBC NUMERIC-typen representerar ett decimalvärde med fast precision som innehåller värden med identisk precision. Numerisk typ mappar till den numeriska SQL Server-typen. |
| DECIMAL | JDBC DECIMAL-typen representerar ett decimalvärde med fast precision som innehåller värden med minst den angivna precisionen.
DECIMAL-typen mappar till SQL Server-decimaltypen. JDBC DECIMAL-typen mappar även till SQL Server money-typen och smallmoney-typen, som är specifika decimaltyper med fast precision som lagras i 8 respektive 4 byte. |
Ungefärliga numeriska typer
De ungefärliga numeriska JDBC-typerna är REAL, DOUBLE och FLOAT.
| Typ | Description |
|---|---|
| Äkta | JDBC-typen REAL har sju siffrors precision (enkel precision) och motsvarar direkt SQL Server-typen real. |
| Dubbel | JDBC DOUBLE-typen har 15 siffror med precision (dubbel precision) och mappar till SQL Server float-typen. JDBC FLOAT-typen är synonym med DOUBLE. Eftersom det kan uppstå förvirring mellan FLOAT och DOUBLE är DOUBLE att föredra. |
Datum- och tidstyper
JDBC TIMESTAMP-typen motsvarar SQL Server datetime och smalldatetime-typerna. Datetime-typen lagras i två heltal med 4 byte. Smalldatetime-typen innehåller samma information (datum och tid), men med mindre noggrannhet, i två småheltal på 2 byte.
Anmärkning
SQL Server-tidsstämpeltypen är en binärsträngstyp med fast längd. Den mappas inte till någon av JDBC-tidstyperna: DATE, TIME eller TIMESTAMP.
Mappning av anpassad typ
Den anpassade typmappningsfunktionen i JDBC som använder SQLData-gränssnitten för JDBC-avancerade typer (UDT, Struct och så vidare). implementeras inte i JDBC-drivrutinen.