Pregunta

Hello, I'm facing an issue while using the JDBC driver to connect to a Plocal Orient DB. Here is my code:

            Properties info = new Properties();
    info.put("user", this.user);
    info.put("password", this.pwd);
    java.sql.DriverManager.registerDriver(new com.orientechnologies.orient.jdbc.OrientJdbcDriver());

    Connection conn = (OrientJdbcConnection) DriverManager.getConnection(this.url, info);

    String sql = "insert into personne (name) values(?)";
    PreparedStatement stmt = conn.prepareStatement(sql);
    stmt.setString(1, "test recuperation RID par jdbc");

    ResultSet rs = stmt.executeQuery();
    ...

And here the exception stack;

Exception in thread "main" com.orientechnologies.orient.core.exception.OCommandExecutionException: Cannot execute non idempotent command at com.orientechnologies.orient.core.storage.OStorageEmbedded.executeCommand(OStorageEmbedded.java:90) at com.orientechnologies.orient.core.storage.OStorageEmbedded.command(OStorageEmbedded.java:85) at com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:69) at com.orientechnologies.orient.core.sql.query.OSQLSynchQuery.run(OSQLSynchQuery.java:82) at com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:29) at com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.query(ODatabaseRecordAbstract.java:505) at com.orientechnologies.orient.core.db.ODatabaseRecordWrapperAbstract.query(ODatabaseRecordWrapperAbstract.java:188) at com.orientechnologies.orient.jdbc.OrientJdbcPreparedStatement.executeQuery(OrientJdbcPreparedStatement.java:73) at org.octopus.dao.jeudonnees.impl.JdbcJeuDonneesDAO.create(JdbcJeuDonneesDAO.java:39) at org.octopus.dao.jeudonnees.impl.JdbcJeuDonneesDAO.create(JdbcJeuDonneesDAO.java:1) at org.octopus.tests.tests.main(tests.java:23)

It seems like it's not possible to run non idempotent commands using the Orient JDBC Driver. Thanks for your help

¿Fue útil?

Solución

The standard way to call an insert with JDBC is by using .executeUpdate():

http://www.mkyong.com/jdbc/jdbc-preparestatement-example-insert-a-record/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top