/// <summary>Queries the SQL tables for the count of the phrase.</summary>
        /// <remarks>
        /// Queries the SQL tables for the count of the phrase.
        /// Returns -1 if the phrase doesn't exist
        /// </remarks>
        /// <param name="str">: phrase</param>
        /// <returns>: count, if exists. -1 if not.</returns>
        /// <exception cref="Java.Sql.SQLException"/>
        public static long GetCount(string str)
        {
            string query = null;

            try
            {
                Connect();
                str = str.Trim();
                if (str.Contains("'"))
                {
                    str = StringUtils.EscapeString(str, new char[] { '\'' }, '\'');
                }
                int    ngram = str.Split("\\s+").Length;
                string table = tablenamePrefix + ngram;
                if (!ExistsTable(table))
                {
                    return(-1);
                }
                string phrase = EscapeString(str);
                query = "select count from " + table + " where phrase='" + phrase + "';";
                IStatement stmt   = connection.CreateStatement();
                IResultSet result = stmt.ExecuteQuery(query);
                if (result.Next())
                {
                    return(result.GetLong("count"));
                }
                else
                {
                    return(-1);
                }
            }
            catch (SQLException e)
            {
                log.Info("Error getting count for " + str + ". The query was " + query);
                Sharpen.Runtime.PrintStackTrace(e);
                throw new Exception(e);
            }
        }