getBigDecimal
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
package org.redkale.source;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.*;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.*;
|
||||
@@ -3001,6 +3002,24 @@ public class DataJdbcSource extends AbstractDataSqlSource {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal getBigDecimal(int index) {
|
||||
try {
|
||||
return rr.getBigDecimal(index);
|
||||
} catch (SQLException e) {
|
||||
throw new SourceException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal getBigDecimal(String column) {
|
||||
try {
|
||||
return rr.getBigDecimal(column);
|
||||
} catch (SQLException e) {
|
||||
throw new SourceException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean getBoolean(int index) {
|
||||
try {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
package org.redkale.source;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import org.redkale.annotation.ClassDepends;
|
||||
import org.redkale.annotation.Nullable;
|
||||
@@ -44,6 +45,13 @@ public interface DataResultSetRow {
|
||||
@ClassDepends
|
||||
public byte[] getBytes(String columnLabel);
|
||||
|
||||
// columnIdex从1开始
|
||||
@ClassDepends
|
||||
public BigDecimal getBigDecimal(int columnIdex);
|
||||
|
||||
@ClassDepends
|
||||
public BigDecimal getBigDecimal(String columnLabel);
|
||||
|
||||
// columnIdex从1开始
|
||||
@ClassDepends
|
||||
public Boolean getBoolean(int columnIdex);
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
package org.redkale.source;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Objects;
|
||||
import org.redkale.annotation.ClassDepends;
|
||||
import org.redkale.asm.Asms;
|
||||
@@ -434,6 +435,25 @@ public abstract class EntityFullFunc<T> {
|
||||
mv.visitFieldInsn(PUTFIELD, entityName, field.getName(), "[B");
|
||||
continue;
|
||||
}
|
||||
} else if (attr.type() == BigDecimal.class) {
|
||||
if (setter != null) {
|
||||
String desc = Type.getMethodDescriptor(setter);
|
||||
mv.visitVarInsn(ALOAD, 2); // obj
|
||||
mv.visitVarInsn(ALOAD, 1); // row
|
||||
Asms.visitInsn(mv, attrIndex);
|
||||
mv.visitMethodInsn(
|
||||
INVOKEINTERFACE, rowName, "getBigDecimal", "(I)Ljava/math/BigDecimal;", true);
|
||||
mv.visitMethodInsn(INVOKEVIRTUAL, entityName, setter.getName(), desc, false);
|
||||
continue;
|
||||
} else if (field != null) {
|
||||
mv.visitVarInsn(ALOAD, 2); // obj
|
||||
mv.visitVarInsn(ALOAD, 1); // row
|
||||
Asms.visitInsn(mv, attrIndex);
|
||||
mv.visitMethodInsn(
|
||||
INVOKEINTERFACE, rowName, "getBigDecimal", "(I)Ljava/math/BigDecimal;", true);
|
||||
mv.visitFieldInsn(PUTFIELD, entityName, field.getName(), "Ljava/math/BigDecimal;");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
mv.visitVarInsn(ALOAD, 0);
|
||||
Asms.visitInsn(mv, attrIndex);
|
||||
@@ -737,6 +757,23 @@ public abstract class EntityFullFunc<T> {
|
||||
mv.visitTypeInsn(CHECKCAST, "[B");
|
||||
mv.visitFieldInsn(PUTFIELD, entityName, field.getName(), "[B");
|
||||
}
|
||||
} else if (attr.type() == BigDecimal.class) {
|
||||
if (setter != null) {
|
||||
String desc = Type.getMethodDescriptor(setter);
|
||||
mv.visitVarInsn(ALOAD, 2); // obj
|
||||
mv.visitVarInsn(ALOAD, 1); // values
|
||||
Asms.visitInsn(mv, attrIndex);
|
||||
mv.visitInsn(AALOAD);
|
||||
mv.visitTypeInsn(CHECKCAST, "java/math/BigDecimal");
|
||||
mv.visitMethodInsn(INVOKEVIRTUAL, entityName, setter.getName(), desc, false);
|
||||
} else if (field != null) {
|
||||
mv.visitVarInsn(ALOAD, 2); // obj
|
||||
mv.visitVarInsn(ALOAD, 1); // values
|
||||
Asms.visitInsn(mv, attrIndex);
|
||||
mv.visitInsn(AALOAD);
|
||||
mv.visitTypeInsn(CHECKCAST, "java/math/BigDecimal");
|
||||
mv.visitFieldInsn(PUTFIELD, entityName, field.getName(), "Ljava/math/BigDecimal;");
|
||||
}
|
||||
} else {
|
||||
if (setter != null) {
|
||||
String desc = Type.getMethodDescriptor(setter);
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
package org.redkale.test.source;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -78,6 +79,16 @@ public class EntityFullFuncTest {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal getBigDecimal(int columnIdex) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal getBigDecimal(String columnLabel) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean getBoolean(int columnIdex) {
|
||||
return true;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
package org.redkale.test.source;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.util.Set;
|
||||
import org.redkale.convert.json.JsonConvert;
|
||||
@@ -25,6 +26,8 @@ public class FullBean {
|
||||
|
||||
private BigInteger number;
|
||||
|
||||
private BigDecimal scale;
|
||||
|
||||
private boolean flag;
|
||||
|
||||
private short status;
|
||||
@@ -111,6 +114,14 @@ public class FullBean {
|
||||
this.number = number;
|
||||
}
|
||||
|
||||
public BigDecimal getScale() {
|
||||
return scale;
|
||||
}
|
||||
|
||||
public void setScale(BigDecimal scale) {
|
||||
this.scale = scale;
|
||||
}
|
||||
|
||||
public boolean isFlag() {
|
||||
return flag;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
package org.redkale.test.source;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.util.Set;
|
||||
import org.redkale.convert.json.JsonConvert;
|
||||
@@ -25,6 +26,8 @@ public class FullBean2 {
|
||||
|
||||
public BigInteger number;
|
||||
|
||||
public BigDecimal scale;
|
||||
|
||||
public boolean flag;
|
||||
|
||||
public short status;
|
||||
|
||||
Reference in New Issue
Block a user