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