Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > выполнение команд из файла *.sq


Автор: Klio 5.5.2009, 21:57
Здраствуйте, у меня такой вопрос:
Мне необходимо выполнить большое количество запросов они находятся на сервере в файле 
к примеру http://localhost/file/data.sql или data.txt
везде можно найти только описание прямого выполнения с консоли команды:
Код

mysql > LOAD DATA INFILE "data.sql" into table 'db'.'table_name';
или
mysql > mysqlimport db_name textfile1 [textfile2 ...]


как можно преобразовать данные строки для возможности автоматического выполнение команд 
из этого файла *.sql на сервере через JSP, JSTL, или просто через классы.

Заранее Спасибо!

Автор: _and 6.5.2009, 05:00
если я правильно понял, то просто читай построчно файл и делай примерно так
Код

Connection conn = DriverManager.getConnection("jdbc url", java.util.Properties);
Statement stmt = conn.createStatement();
stmt.addBatch("строка из файла");
stmt.executeBatch();
stmt.close();
conn.close();

код писал не лету так что добавляй обработку исключений, создание коннекта к БД, цикл по строкам файла итд

Автор: Kangaroo 6.5.2009, 10:11
Цитата(_and @  6.5.2009,  05:00 Найти цитируемый пост)
stmt.addBath("строка из файла");

лучше
Код

stmt.addBatch("строка из файла");

А то ванна добавляется.

Автор: _and 6.5.2009, 10:14
 smile  Kangaroo, пасиб за поправочку не заметил

Автор: Klio 7.5.2009, 19:23
Ну в общем
Код

    public boolean RdFl(String filen) {
        try {
            boolean go;
            BufferedReader br = new BufferedReader(new FileReader(filen));
            for (;;) {
                String line = br.readLine();
                if (line == null)
                    break;
                else {
                    go = VFL(line);
                    if (go == false) {
                        return false;
                    }
                }
            }
        } catch (FileNotFoundException e) {
            return false;
        } catch (IOException e) {
            return false;
        }
        return true;
    }

VFL - процедура записи в базу строки

Загвостка в том что функция FileReader("http://localhost/file/data.sql")
не может считать файл и пишет FileNotFound

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)