// Path: library/src/main/java/net/sf/jsqlparser/parser/KbSqlParserManager.java
// public class KbSqlParserManager {
// 
//     public Statement parse(String sql) throws JSQLParserException {
//         sql = sql.trim();
// 
//         boolean isInsertOrReplace = false;
// 
//         // 校验是否"INSERT OR REPLACE"语法
//         if (sql.toUpperCase().startsWith("INSERT OR REPLACE")) {
//             isInsertOrReplace = true;
// 
//             String[] sqlParts = new String[2];
//             sqlParts[0] = sql.substring(0, "INSERT OR REPLACE".length());
//             sqlParts[1] = sql.substring("INSERT OR REPLACE".length(), sql.length());
// 
//             sqlParts[0] = sqlParts[0].toUpperCase().replace("INSERT OR REPLACE", "INSERT");
// 
//             sql = sqlParts[0] + sqlParts[1];
//         }
// 
//         CCJSqlParser parser = new CCJSqlParser(new StringReader(sql));
//         try {
//             Statement statement = parser.Statement();
// 
//             // 当"INSERT OR REPLACE"语法，生成Insert代理
//             if (isInsertOrReplace && statement instanceof Insert) {
//                 statement = new InsertOrReplaceProxy().getInstance(Insert.class, (Insert) statement);
//             }
//             return statement;
//         } catch (Exception ex) {
//             throw new JSQLParserException(ex);
//         }
//     }
// }


import android.annotation.TargetApi;
import android.os.Build;
import android.os.ParcelFileDescriptor;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.parser.KbSqlParserManager;
import net.sf.jsqlparser.statement.delete.Delete;
import net.sf.jsqlparser.statement.update.Update;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
            if (sql.trim().toUpperCase().startsWith("DELETE FROM")) {
                StringBuilder sb = new StringBuilder(sql);

                boolean hasWhere = sql.toUpperCase().contains("WHERE");

                if (!hasWhere) {
                    // 没有where才执行替换
                    int len = (hasWhere ? sql.toUpperCase().indexOf("WHERE") : sb.length());

                    int quotesCount = 0;

                    for (int i = "DELETE FROM".length(); i < len; i++) {
                        if (sb.charAt(i) == '\'') {
                            if (quotesCount == 0) {
                                quotesCount++;
                                sb.setCharAt(i, '\"');
                                continue;
                            } else {
                                quotesCount--;
                                sb.setCharAt(i, '\"');
                                break;
                            }
                        }
                    }

                    sql = sb.toString();
                }
            }

            try {
// Path: library/src/main/java/net/sf/jsqlparser/parser/KbSqlParserManager.java
// public class KbSqlParserManager {
// 
//     public Statement parse(String sql) throws JSQLParserException {
//         sql = sql.trim();
// 
//         boolean isInsertOrReplace = false;
// 
//         // 校验是否"INSERT OR REPLACE"语法
//         if (sql.toUpperCase().startsWith("INSERT OR REPLACE")) {
//             isInsertOrReplace = true;
// 
//             String[] sqlParts = new String[2];
//             sqlParts[0] = sql.substring(0, "INSERT OR REPLACE".length());
//             sqlParts[1] = sql.substring("INSERT OR REPLACE".length(), sql.length());
// 
//             sqlParts[0] = sqlParts[0].toUpperCase().replace("INSERT OR REPLACE", "INSERT");
// 
//             sql = sqlParts[0] + sqlParts[1];
//         }
// 
//         CCJSqlParser parser = new CCJSqlParser(new StringReader(sql));
//         try {
//             Statement statement = parser.Statement();
// 
//             // 当"INSERT OR REPLACE"语法，生成Insert代理
//             if (isInsertOrReplace && statement instanceof Insert) {
//                 statement = new InsertOrReplaceProxy().getInstance(Insert.class, (Insert) statement);
//             }
//             return statement;
//         } catch (Exception ex) {
//             throw new JSQLParserException(ex);
//         }
//     }
// }


// Path: library/src/main/java/android/database/sqlite/ShadowSQLiteStatement.java
import android.annotation.TargetApi;
import android.os.Build;
import android.os.ParcelFileDescriptor;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.parser.KbSqlParserManager;
import net.sf.jsqlparser.statement.delete.Delete;
import net.sf.jsqlparser.statement.update.Update;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

            if (sql.trim().toUpperCase().startsWith("DELETE FROM")) {
                StringBuilder sb = new StringBuilder(sql);

                boolean hasWhere = sql.toUpperCase().contains("WHERE");

                if (!hasWhere) {
                    // 没有where才执行替换
                    int len = (hasWhere ? sql.toUpperCase().indexOf("WHERE") : sb.length());

                    int quotesCount = 0;

                    for (int i = "DELETE FROM".length(); i < len; i++) {
                        if (sb.charAt(i) == '\'') {
                            if (quotesCount == 0) {
                                quotesCount++;
                                sb.setCharAt(i, '\"');
                                continue;
                            } else {
                                quotesCount--;
                                sb.setCharAt(i, '\"');
                                break;
                            }
                        }
                    }

                    sql = sb.toString();
                }
            }

            try {
                KbSqlParserManager                    sqlManager = new KbSqlParserManager();