java - MySQL Javaドライバー:行は挿入されませんが、エラーは表示されません

原文 java mysql jdbc

MySQLデータベースに値を挿入しようとしています。エラーは発生しません(statement.executeUpdate(...)は1を返します)が、行は挿入されません。

次のMySQLドライバーを使用しています。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.34</version>
</dependency>


私はこのように接続を初期化します:

public class MySqlPersistence implements IPersistence {
    private static final Logger LOGGER = LoggerFactory.getLogger(MySqlPersistence.class);
    private Connection connection;
    private Statement statement;

    @Override
    public void init(final String aUserName, final String aPassword, final String aHost,
                     final String aDatabase, final int aPort) {
        final String dbUrl = "jdbc:mysql://" + aHost + ":" + aPort + "/" + aDatabase;

        final String schema = readSchemaCreationScript();


        try
        {
            Class.forName("com.mysql.jdbc.Driver");

            connection = DriverManager.getConnection(dbUrl, aUserName, aPassword);
            connection.setAutoCommit(true);

            statement = connection.createStatement();

            new ScriptRunner(connection).runScript(new StringReader(schema));
        } catch (final ClassNotFoundException e) {
            LOGGER.error("", e);
        } catch (final SQLException e) {
            LOGGER.error("", e);
        }
    }
}


行の挿入は次のように行われます。

@Override
public Long createRepositoryIfNotExists(final String aRepoPath) throws SQLException {
    final String cleanPath = aRepoPath.replace('\\', '/');

    final String sql2 = "INSERT INTO repositories (path) VALUES('" + cleanPath + "')";

    int result = statement.executeUpdate(sql2);

    ResultSet resultSet = statement.executeQuery("SELECT id FROM repositories WHERE path='" +
            cleanPath + "'");

    Long repoId = null;

    if (resultSet.next())
    {
        repoId = resultSet.getLong("id");
    }

    resultSet.close();

    return repoId;
}


phpMyAdminでsql2を実行すると、行が挿入され、エラーが発生しません。

MySQLサーバーのバージョンは5.5.40です。

この問題の原因は何ですか(行が挿入されず、エラーが報告されません)?
答え
例外またはエラーがスローされ、トレースを残さずにキャプチャされている可能性があります。挿入の前後にトレースを作成して、挿入を含む行が実際にエラーなしで実行されているかどうかを確認する必要があります。
関連記事

java - chef::Exception::RecipeNotFoundがクックブックJavaのデフォルトのレシピを見つけられませんでした

java - Mavenに異なる環境で異なるアーティファクトを構築させる

java - Java / WEKA:Kクラスタリングエラー:クラス属性を処理できません

java - Flexでエクスポートを生成する

java - GridBagLayoutの均一性の問題

java - Java EEタイムスタンプJSONシリアル化形式

java - Tesseractランタイムエラー

java - Map <Key、Value>を値でソート

java - 「コンテンツを追加する前のrequestFeature()」DialogFragmentの使用

java - 私のwebview customhtml background onitemclicklistener