Sorry, I was a bit hasty on the send button I must admit :-)
... these are the insert statements ...
DSL.using(getConf(con)).executeInsert(record);
DSL.using(getConf(con))
.insertInto(TABLE)
.set(record)
.execute();
... using the following configuration ...
Configuration configuration = new DefaultConfiguration().set(con).set(SQLDialect.MYSQL);
configuration.set(new DefaultExecuteListenerProvider(new PhoenixListener()));
... with the following listener ...
public class PhoenixListener extends DefaultExecuteListener {
@Override
public void start(ExecuteContext ctx) {
String sql = ctx.sql();
System.out.println(sql);
}
@Override
public void renderEnd(ExecuteContext ctx) {
String sql = ctx.sql();
sql = sql.replace("insert", "UPSERT");
sql = sql.replace("`", "");
ctx.sql(sql);
}
@Override
public void prepareEnd(ExecuteContext ctx) {
ctx.query();
String sql = ctx.sql();
sql = sql.replace("insert", "UPSERT");
sql = sql.replace("`", "");
ctx.sql(sql);
}
@Override
public void bindEnd(ExecuteContext ctx) {
String sql = ctx.sql();
System.out.println(sql);
}
}