Skip to content

Commit 0bf7e7e

Browse files
committed
Add Missing Types
1 parent 49fa78c commit 0bf7e7e

5 files changed

Lines changed: 47 additions & 6 deletions

File tree

JSqlServerBulkInsert/src/main/java/de/bytefish/jsqlserverbulkinsert/converters/BigDecimalConverter.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@
44
package de.bytefish.jsqlserverbulkinsert.converters;
55

66
import java.math.BigDecimal;
7+
import java.math.RoundingMode;
78

89
public class BigDecimalConverter extends BaseConverter<BigDecimal> {
910

1011
private final int scale;
12+
private final RoundingMode roundingMode;
1113

12-
public BigDecimalConverter(int scale) {
14+
public BigDecimalConverter(int scale, RoundingMode roundingMode) {
15+
this.roundingMode = roundingMode;
1316
this.scale = scale;
1417
}
1518

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package de.bytefish.jsqlserverbulkinsert.converters;
2+
3+
public class NullConverter<TPropertyType> extends BaseConverter<TPropertyType> {
4+
@Override
5+
public Object internalConvert(TPropertyType value) {
6+
return null;
7+
}
8+
}

JSqlServerBulkInsert/src/main/java/de/bytefish/jsqlserverbulkinsert/converters/CharacterConverter.java renamed to JSqlServerBulkInsert/src/main/java/de/bytefish/jsqlserverbulkinsert/converters/TextConverter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
package de.bytefish.jsqlserverbulkinsert.converters;
55

6-
public class CharacterConverter extends BaseConverter<Character> {
6+
public class TextConverter extends BaseConverter<Character> {
77
@Override
88
public Object internalConvert(Character value) {
99
return value;

JSqlServerBulkInsert/src/main/java/de/bytefish/jsqlserverbulkinsert/mapping/AbstractMapping.java

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import java.math.BigDecimal;
1212
import java.math.BigInteger;
13+
import java.math.RoundingMode;
1314
import java.sql.Timestamp;
1415
import java.sql.Types;
1516
import java.time.*;
@@ -48,17 +49,42 @@ protected void mapBoolean(String columnName, ToBooleanFunction<TEntity> property
4849
// region Text Functions
4950

5051
protected void mapChar(String columnName, Function<TEntity, Character> propertyGetter) {
51-
mapProperty(columnName, Types.CHAR, propertyGetter, new CharacterConverter());
52+
mapProperty(columnName, Types.CHAR, propertyGetter, new TextConverter());
53+
}
54+
55+
protected void mapNchar(String columnName, Function<TEntity, Character> propertyGetter) {
56+
mapProperty(columnName, Types.NCHAR, propertyGetter, new TextConverter());
57+
}
58+
59+
protected void mapClob(String columnName, Function<TEntity, Character> propertyGetter) {
60+
mapProperty(columnName, Types.CLOB, propertyGetter, new TextConverter());
5261
}
5362

5463
protected void mapVarchar(String columnName, Function<TEntity, String> propertyGetter) {
5564
mapProperty(columnName, Types.VARCHAR, propertyGetter, new VarcharConverter());
5665
}
5766

67+
protected void mapLongVarchar(String columnName, Function<TEntity, Character> propertyGetter) {
68+
mapProperty(columnName, Types.LONGVARCHAR, propertyGetter, new TextConverter());
69+
}
70+
5871
protected void mapNvarchar(String columnName, Function<TEntity, String> propertyGetter) {
5972
mapProperty(columnName, Types.NVARCHAR, propertyGetter, new NVarcharConverter());
6073
}
6174

75+
protected void mapLongNvarchar(String columnName, Function<TEntity, Character> propertyGetter) {
76+
mapProperty(columnName, Types.LONGNVARCHAR, propertyGetter, new TextConverter());
77+
}
78+
79+
80+
// endregion
81+
82+
// region Special Functions
83+
84+
protected <TProperty> void mapNull(String columnName, Function<TEntity, TProperty> propertyGetter) {
85+
mapProperty(columnName, Types.NULL, propertyGetter, new NullConverter<>());
86+
}
87+
6288
// endregion
6389

6490
// region Numeric Functions
@@ -106,11 +132,14 @@ protected void mapLong(String columnName, ToLongFunction<TEntity> propertyGetter
106132
}
107133

108134
protected void mapNumeric(String columnName, int precision, int scale, Function<TEntity, BigDecimal> propertyGetter) {
109-
mapProperty(columnName, Types.NUMERIC, precision, scale, false, propertyGetter, new BigDecimalConverter(scale));
135+
mapProperty(columnName, Types.NUMERIC, precision, scale, false, propertyGetter, new BigDecimalConverter(scale, RoundingMode.HALF_UP));
136+
}
137+
protected void mapNumeric(String columnName, int precision, int scale, RoundingMode roundingMode, Function<TEntity, BigDecimal> propertyGetter) {
138+
mapProperty(columnName, Types.NUMERIC, precision, scale, false, propertyGetter, new BigDecimalConverter(scale, roundingMode));
110139
}
111140

112141
protected void mapDecimal(String columnName, int precision, int scale, Function<TEntity, BigDecimal> propertyGetter) {
113-
mapProperty(columnName, Types.DECIMAL, precision, scale, false, propertyGetter, new BigDecimalConverter(scale));
142+
mapProperty(columnName, Types.DECIMAL, precision, scale, false, propertyGetter, new BigDecimalConverter(scale, RoundingMode.HALF_UP));
114143
}
115144

116145
protected void mapReal(String columnName, Function<TEntity, Float> propertyGetter) {

JSqlServerBulkInsert/src/test/java/de/bytefish/jsqlserverbulkinsert/test/base/TransactionalTestBase.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ public abstract class TransactionalTestBase {
1616

1717
@Before
1818
public void setUp() throws Exception {
19-
connection = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=TestDatabase", "philipp", "test_pwd");
19+
//connection = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=TestDatabase", "philipp", "test_pwd");
20+
connection = DriverManager.getConnection("jdbc:sqlserver://localhost;instanceName=MSSQLSERVER2017;databaseName=TestDatabase;", "philipp", "test_pwd");
2021

2122
onSetUpBeforeTransaction();
2223
connection.setAutoCommit(false); // Start the Transaction:

0 commit comments

Comments
 (0)