小编Fir*_*rat的帖子

JNI新的原始类型

我们怎样才能在JNI中使用新的原始类型.我有一个函数返回一个jobject.这是可能的返回jint,jchar等等.

还有NewString,为什么不NewInteger,NewCharacter,NewDouble,等有一个在目前JNI层没有自动装箱.

我可以使用NewObject调用,但这将是创建基元类型的过多开销.

jobject NewInteger(JNIEnv* env, jint value)
{
    jclass cls = FindClass(env, "java/lang/Integer");
    jmethodID methodID = GetMethodID(env, cls, "<init>", "(I)V", false);
    return env->NewObject(cls, methodID, value);
}
Run Code Online (Sandbox Code Playgroud)

我有包装函数来获取Class和MethodID.

java primitive autoboxing java-native-interface types

5
推荐指数
1
解决办法
4806
查看次数

如何通过JDBC-ODBC桥在MS Access中指定空值?

我无法使用MS Access(sun.jdbc.odbc.JdbcOdbcDriver)在PreparedStatement上调用setNull

preparedStatement.setNull(index, sqltype). 
Run Code Online (Sandbox Code Playgroud)

这有解决方法吗?对于LONGBINARY数据类型,我尝试了以下调用,但都没有工作.

setNull(index, java.sql.Types.VARBINARY)
setNull(index, java.sql.Types.BINARY)
Run Code Online (Sandbox Code Playgroud)
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]Invalid SQL data type
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
        at sun.jdbc.odbc.JdbcOdbc.SQLBindInParameterNull(JdbcOdbc.java:986)
        at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setNull(JdbcOdbcPreparedStatement.java:363)

ms-access odbc blob jdbc jdbc-odbc

4
推荐指数
1
解决办法
1157
查看次数