создать запрос SQL в c ++/java?

Прежде всего, при использовании класса Random вы можете указать начальное число, в котором будет указано, как генерируется число. Поэтому я дал вам семя. Это семя всегда меняется, поэтому случайное число всегда будет другим. Помните, что Случайное не Случайное, Случайное (Семя) Случайное! Список, который вы ищете, называется «Числа».

Надеюсь, этот код поможет вам:

using System.Collections.Generic;
using System;

namespace Degubbing
{
    class DebugProgram
    {
        static void Main(string[] args)
        {
            List<int> Numbers = new List<int> { };

            int Seed = DateTime.Now.Millisecond;
            Random Generator = new Random(Seed);

            for (int i = 0; i < 10; i++)
            {
                int RandomNum = Generator.Next(10000000, 20000000);
                string Result = RandomNum.ToString();
                Result = Result.Remove(Result.Length - 1);
                Result = Result + Result[0];
                Console.WriteLine(Result);
            }

            Console.ReadKey();
        }
    }
}
6
задан OMG Ponies 20 October 2009 в 02:39
поделиться

4 ответа

Существует некоторая вещь под названием SOCI - Библиотека Доступа к базе данных C++ для C++

1
ответ дан 9 December 2019 в 20:50
поделиться

Всегда использование "готовится" будет эквивалент prepareStatement, но точное имя функции будет зависеть от Вашей базы данных и комбинации драйвера.

Преимуществами подготовленного оператора по выполнить (Строка) являются много:-

Оператор анализируется, и план доступа определил только однажды, когда "подготовить" оператор выполняется. В зависимости от того, сколько раз Вы выполняете оператор, это может привести к намного лучшей производительности.

Вы не должны волноваться о специальных символах в строковых данных при передаче их через setString (). В выполнить (Строка) любые одинарные кавычки или точки с запятой в данных приведут к ошибке анализа.

Хуже это - то, как "внедрение SQL" набрасывается на работу. Если строка что-то как "x' от cust_table; удалите из cust_table; выберите", вводится как данные, они могли бы хорошо привести к оператору удаления, проанализированному и выполняемому.

Обработка чисел намного более эффективна. Вызов setInt принимает целочисленное значение, как для equvalent строки SQL, необходимо преобразовать в символы затем, DBMS должен преобразовать его назад в целое число.

Удобочитаемость. Вы кодируете единственный SQL-оператор с несколькими вопросительными знаками, куда переменные идут, который относительно легко считать, в противоположность умственному парсингу, и анализ ряда строковых конкатенаций будет дополнительный шум для завершенных кавычек и т.д.

Существует однако несколько случаев, где выполняются (Строка) на самом деле лучше.

Где Ваши ключи очень неравномерно распределяются. НАПРИМЕР, Если 95% Ваших клиентов живут в США, и Вы хотите перечислить 4%, кто живет в Канаде затем "где страна =?" обычно приводил бы к сканированию табличного пространства, в то время как с, "где страна = 'CA'" у Вас есть некоторый шанс использования индекса.

Другой случай - то, где пользователь может ввести или опустить несколько критериев поиска. Намного лучше для создания строки SQL для критериев Вам дают, чем конструкция сложный запрос, который справляется со всем возможным permutaions входных критериев.

6
ответ дан 9 December 2019 в 20:50
поделиться

В Java необходимо использовать PreparedStatement.

PreparedStatement statement = connection.prepareStatement("SELECT * FROM Table WHERE ID = ?");
statement.setInt(1, 17);
ResultSet resultSet = statement.executeQuery();
4
ответ дан 9 December 2019 в 20:50
поделиться

Когда использование подготовленных операторов не возможно, я нахожу использование, которое потоки C++ являются лучшим способом записать запросу:

std::ostringstream sql;
sql << "exec loadStuff(" << param1 << ", " << param2 << ")";

Необходимость волноваться о типах параметров и длине строки является большой!

1
ответ дан 9 December 2019 в 20:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: