java.sql.SQLException: near "on": problema de error de sintaxis

En Sqlite 3.6.0, quiero actualizar el registro si existe o insertarlo, pero recibo un error como

java.sql.SQLException: near "on": syntax error

mi consulta sql de la siguiente manera;

INSERT INTO tx (
               _id,
               amount,
               fee,
               prev_hash,
               nonce,
               action_time,
               completion_time,
               _from,
               _to,
               asset,
               hash,
               block,
               seq,
               [desc]
           )
           VALUES (
               ?,
               ?,
               ?,
               ?,
               ?,
               ?,
               ?,
               ?,
               ?,
               ?,
               ?,
               ?,
               ?,
               ?
           )
           ON CONFLICT (
               _id
           )
           DO UPDATE SET amount = 1.0,
           fee = 0.001,
           prev_hash = 'e6d0ca4b71488972cb149eef427ffbeb6132449c045c88db89ddaa8ab0c3611f',
           nonce = 1544773280,
           action_time = 1544773276808,
           completion_time = 1544773276808,
           _from = 'SKK1P5eQqoN7FBKnughbvp3UBK2CyjRQhHBp',
           _to = 'SKK1KuAwe4kR1SfdoXDiQStVtRPvdTVaKy2ry',
           asset = 'SKK',
           hash = '',
           block = 100,
           seq = 15288,
           [desc] = 'denemee'

Y mi código se bloquea como sigue;

sql = "insert into tx (_id,amount,fee,prev_hash,nonce,action_time,completion_time,_from,_to,asset,hash,block,seq,desc) "
                                    + "values (?,?,?,?,?,?,?,?,?,?,?,?,?,?) on conflict (_id) do update set "
                                    + "amount =" + tx.amount + ",fee=" + tx.fee + ",prev_hash='" + tx.prev_hash
                                    + "'" + ",nonce=" + tx.nonce + ",action_time=" + tx.action_time
                                    + ",completion_time=" + tx.action_time + ",_from='" + tx.wallet + "'" + ",_to='"
                                    + tx.to + "'" + ",asset='" + tx.asset + "'" + ",hash=''" + ",block=100"
                                    + ",seq=" + tx.seq + ",desc='" + tx.desc + "'";
                            PreparedStatement pstmt = con.prepareStatement(sql);
                            pstmt.setString(1, tx._id);
                            pstmt.setString(2, String.valueOf(tx.amount));
                            pstmt.setString(3, String.valueOf(tx.fee));// fee
                            pstmt.setString(4, tx.prev_hash);// prev_hash
                            pstmt.setString(5, tx.nonce);// nonce
                            pstmt.setString(6, String.valueOf(tx.action_time));// action time
                            pstmt.setString(7, "");// completion_time
                            pstmt.setString(8, tx.wallet);// from
                            pstmt.setString(9, tx.to); // to
                            pstmt.setString(10, tx.asset);// asset
                            pstmt.setString(11, tx.hash);// hash
                            pstmt.setString(12, "");// block
                            pstmt.setInt(13, tx.seq);// seq
                            pstmt.setString(14, tx.desc);// desc
                            pstmt.executeUpdate();

la consulta en bruto funciona en sqlitestudio con éxito, pero recibo un error. Sé que sqlite versión 3.6.0 admite eventos upsert. ¿Dónde lo estoy haciendo mal? ¿Cómo puedo manejar este problema correctamente?

Respuesta 1

IDEA dijo que informa clases internas no estáticas. La compilación de tales clases provoca la creación de métodos ocultos y visibles en el paquete en la clase principal, lo que puede comprometer la seguridad. Así que quiero ...

Estoy tratando de agrupar algunos conjuntos en conjuntos disjuntos. Por ejemplo, si tengo estos 5 conjuntos: [[1, 3], [2], [1, 5], [6, 8], [1, 7]] Quiero tener este resultado: [[2] , [6, 8], [1, 3, 5, 7]] Aquí está el ...

Usando Pebble versión 3.0.6. Necesito verificar si el valor 'v' tiene una variable específica (traducido a Java: si Object v tiene una propiedad específica). Buscando algo como {% if v instanceof test.MyClass ...

Estoy haciendo una aplicación de escritorio en Java Swing usando la plataforma Netbeans. Quiero convertir una imagen en escala de grises de 16 bits en una imagen RGB. ¿Cómo puedo hacer eso?