mirror of
https://github.com/alibaba/DataX.git
synced 2025-05-03 03:59:07 +08:00
change
This commit is contained in:
parent
ff87a6bcff
commit
f6520cf06b
@ -5,21 +5,22 @@ import java.util.Properties;
|
|||||||
public class JniConnection {
|
public class JniConnection {
|
||||||
|
|
||||||
private static final long JNI_NULL_POINTER = 0L;
|
private static final long JNI_NULL_POINTER = 0L;
|
||||||
|
private static final int JNI_SUCCESSFUL = 0;
|
||||||
private static final String PROPERTY_KEY_CONFIG_DIR = "cfgdir";
|
private static final String PROPERTY_KEY_CONFIG_DIR = "cfgdir";
|
||||||
private static final String PROPERTY_KEY_LOCALE = "locale";
|
private static final String PROPERTY_KEY_LOCALE = "locale";
|
||||||
private static final String PROPERTY_KEY_CHARSET = "charset";
|
private static final String PROPERTY_KEY_CHARSET = "charset";
|
||||||
private static final String PROPERTY_KEY_TIME_ZONE = "timezone";
|
private static final String PROPERTY_KEY_TIME_ZONE = "timezone";
|
||||||
|
|
||||||
private long psql;
|
private long conn;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
System.loadLibrary("taos");
|
System.loadLibrary("taos");
|
||||||
}
|
}
|
||||||
|
|
||||||
public JniConnection(Properties props) {
|
public JniConnection(Properties props) {
|
||||||
if (this.psql != JNI_NULL_POINTER) {
|
if (this.conn != JNI_NULL_POINTER) {
|
||||||
close();
|
close();
|
||||||
this.psql = JNI_NULL_POINTER;
|
this.conn = JNI_NULL_POINTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
initImp(props.getProperty(PROPERTY_KEY_CONFIG_DIR, null));
|
initImp(props.getProperty(PROPERTY_KEY_CONFIG_DIR, null));
|
||||||
@ -39,31 +40,35 @@ public class JniConnection {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void open(String host, int port, String dbname, String user, String password) {
|
public void open(String host, int port, String dbname, String user, String password) {
|
||||||
if (this.psql != JNI_NULL_POINTER) {
|
if (this.conn != JNI_NULL_POINTER) {
|
||||||
close();
|
close();
|
||||||
this.psql = JNI_NULL_POINTER;
|
this.conn = JNI_NULL_POINTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.psql = connectImp(host, port, dbname, user, password);
|
this.conn = connectImp(host, port, dbname, user, password);
|
||||||
if (this.psql == JNI_NULL_POINTER) {
|
if (this.conn == JNI_NULL_POINTER) {
|
||||||
String errMsg = getErrMsgImp(0);
|
String errMsg = getErrMsgImp(0);
|
||||||
throw new RuntimeException(errMsg);
|
throw new RuntimeException(errMsg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public long insertOpentsdbJson(String json) {
|
public void insertOpentsdbJson(String json) {
|
||||||
if (this.psql == JNI_NULL_POINTER) {
|
if (this.conn == JNI_NULL_POINTER) {
|
||||||
throw new RuntimeException("JNI connection is NULL");
|
throw new RuntimeException("JNI connection is NULL");
|
||||||
}
|
}
|
||||||
return insertOpentsdbJson(json, this.psql);
|
long code = insertOpentsdbJson(json, this.conn);
|
||||||
|
if (code != JNI_SUCCESSFUL) {
|
||||||
|
String errMsg = getErrMsgByCode(code);
|
||||||
|
throw new RuntimeException(errMsg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void close() {
|
public void close() {
|
||||||
int code = this.closeConnectionImp(this.psql);
|
int code = this.closeConnectionImp(this.conn);
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
throw new RuntimeException("JNI closeConnection failed");
|
throw new RuntimeException("JNI closeConnection failed");
|
||||||
}
|
}
|
||||||
this.psql = JNI_NULL_POINTER;
|
this.conn = JNI_NULL_POINTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static native void initImp(String configDir);
|
private static native void initImp(String configDir);
|
||||||
@ -80,6 +85,8 @@ public class JniConnection {
|
|||||||
|
|
||||||
private native String getErrMsgImp(long pSql);
|
private native String getErrMsgImp(long pSql);
|
||||||
|
|
||||||
|
private native String getErrMsgByCode(long code);
|
||||||
|
|
||||||
private native int getAffectedRowsImp(long connection, long pSql);
|
private native int getAffectedRowsImp(long connection, long pSql);
|
||||||
|
|
||||||
private native int closeConnectionImp(long connection);
|
private native int closeConnectionImp(long connection);
|
||||||
|
@ -9,6 +9,8 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
#undef com_alibaba_datax_plugin_writer_JniConnection_JNI_NULL_POINTER
|
#undef com_alibaba_datax_plugin_writer_JniConnection_JNI_NULL_POINTER
|
||||||
#define com_alibaba_datax_plugin_writer_JniConnection_JNI_NULL_POINTER 0LL
|
#define com_alibaba_datax_plugin_writer_JniConnection_JNI_NULL_POINTER 0LL
|
||||||
|
#undef com_alibaba_datax_plugin_writer_JniConnection_JNI_SUCCESSFUL
|
||||||
|
#define com_alibaba_datax_plugin_writer_JniConnection_JNI_SUCCESSFUL 0L
|
||||||
/*
|
/*
|
||||||
* Class: com_alibaba_datax_plugin_writer_JniConnection
|
* Class: com_alibaba_datax_plugin_writer_JniConnection
|
||||||
* Method: initImp
|
* Method: initImp
|
||||||
@ -65,6 +67,14 @@ JNIEXPORT jint JNICALL Java_com_alibaba_datax_plugin_writer_JniConnection_getErr
|
|||||||
JNIEXPORT jstring JNICALL Java_com_alibaba_datax_plugin_writer_JniConnection_getErrMsgImp
|
JNIEXPORT jstring JNICALL Java_com_alibaba_datax_plugin_writer_JniConnection_getErrMsgImp
|
||||||
(JNIEnv *, jobject, jlong);
|
(JNIEnv *, jobject, jlong);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: com_alibaba_datax_plugin_writer_JniConnection
|
||||||
|
* Method: getErrMsgByCode
|
||||||
|
* Signature: (J)Ljava/lang/String;
|
||||||
|
*/
|
||||||
|
JNIEXPORT jstring JNICALL Java_com_alibaba_datax_plugin_writer_JniConnection_getErrMsgByCode
|
||||||
|
(JNIEnv *, jobject, jlong);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Class: com_alibaba_datax_plugin_writer_JniConnection
|
* Class: com_alibaba_datax_plugin_writer_JniConnection
|
||||||
* Method: getAffectedRowsImp
|
* Method: getAffectedRowsImp
|
||||||
|
@ -10,7 +10,7 @@ public class JniConnectionTest {
|
|||||||
public void test() {
|
public void test() {
|
||||||
JniConnection connection = new JniConnection(new Properties());
|
JniConnection connection = new JniConnection(new Properties());
|
||||||
|
|
||||||
connection.open("192.168.56.105", 6030, "log", "root", "taosdata");
|
connection.open("192.168.56.105", 6030, "test", "root", "taosdata");
|
||||||
|
|
||||||
String json = "{\"metric\":\"weather.temperature\",\"timestamp\":1609430400000,\"value\":123,\"tags\":{\"location\":\"beijing\",\"id\":123}}";
|
String json = "{\"metric\":\"weather.temperature\",\"timestamp\":1609430400000,\"value\":123,\"tags\":{\"location\":\"beijing\",\"id\":123}}";
|
||||||
connection.insertOpentsdbJson(json);
|
connection.insertOpentsdbJson(json);
|
||||||
|
Loading…
Reference in New Issue
Block a user