void testStatements(JDBCApi jdbcApi) throws Exception {
        String insertQuery = "INSERT INTO test (name, age) VALUES (?, ?)";
        String selectQuery = "SELECT * FROM test";
        String deleteQuery = "DELETE FROM test";

        Driver driverClass = jdbcApi.getJDBCDriverClass().newDriver();
        try (Connection conn = connect(driverClass)) {
            doInTransaction(conn, () -> {
                try (PreparedStatement insert = conn.prepareStatement(insertQuery)) {
                    insert.setString(1, "maru");
                    insert.setInt(2, 5);
                    insert.execute();
                }

                try (Statement select = conn.createStatement()) {
                    try (ResultSet rs = select.executeQuery(selectQuery)) {
                        while (rs.next()) {
                            final int id = rs.getInt("id");
                            final String name = rs.getString("name");
                            final int age = rs.getInt("age");
                            logger.debug("id: {}, name: {}, age: {}", id, name, age);
                        }
                    }
                }

                try (Statement delete = conn.createStatement()) {
                    delete.executeUpdate(deleteQuery);
                }
            });

            PluginTestVerifier verifier = PluginTestVerifierHolder.getInstance();

            verifier.printCache();

            Method connect = jdbcApi.getDriver().getConnect();
            verifier.verifyTrace(event(MYSQL, connect, null, databaseAddress, databaseName, cachedArgs(jdbcUrl)));

            final JDBCApi.ConnectionClass connectionClass = jdbcApi.getConnection();
            Method setAutoCommit = connectionClass.getSetAutoCommit();
            verifier.verifyTrace(event(MYSQL, setAutoCommit, null, databaseAddress, databaseName, args(false)));

            Method prepareStatement = connectionClass.getPrepareStatement();
            verifier.verifyTrace(event(MYSQL, prepareStatement, null, databaseAddress, databaseName, sql(insertQuery, null)));

            final JDBCApi.PreparedStatementClass preparedStatementClass = jdbcApi.getPreparedStatement();
            Method execute = preparedStatementClass.getExecute();
            verifier.verifyTrace(event(MYSQL_EXECUTE_QUERY, execute, null, databaseAddress, databaseName, Expectations.sql(insertQuery, null, "maru, 5")));

            final JDBCApi.StatementClass statementClass = jdbcApi.getStatement();
            Method executeQuery = statementClass.getExecuteQuery();
            verifier.verifyTrace(event(MYSQL_EXECUTE_QUERY, executeQuery, null, databaseAddress, databaseName, Expectations.sql(selectQuery, null)));

            Method executeUpdate = statementClass.getExecuteUpdate();
            verifier.verifyTrace(event(MYSQL_EXECUTE_QUERY, executeUpdate, null, databaseAddress, databaseName, Expectations.sql(deleteQuery, null)));

            Method commit = connectionClass.getCommit();
            verifier.verifyTrace(event(MYSQL, commit, null, databaseAddress, databaseName));
        }
    }
@author Jongho Moon
@author HyunGil Jeong
agent-module/plugins-it/mysql-jdbc-driver-plugin-it/src/test/java/com/navercorp/pinpoint/it/plugin/jdbc/mysql/MySqlItHelper.java