2012-02-24 2 views
0

Мне нужно построить строку запроса вставки для создания подготовленного заявления. У меня есть имя столбца в файле Excel.создание подготовленного отчета с большим количеством столбцов

В таблице содержится более 250 столбцов, требуется много времени и усилий для создания простого запроса на вставку. Мне нужно подсчитать столбцы и поставить ? в поле значений в запросе.

Есть ли другой способ создания этих запросов.

Пожалуйста, предложите. Заранее спасибо

+0

Что вы делаете, это разовая работа! Вы ищете какое-то механическое решение или решение Java? – Santosh

+0

Да, все, потому что я должен написать тот же запрос, но с небольшими изменениями для более чем 10 таблиц – Abhij

ответ

1

Я могу предложить парадигму этого, реализация этой задачи будет гораздо более масштабной, хотя и из того, что я могу разобрать, это довольно сложная задача!

Вы можете использовать JXL api для чтения этих имен столбцов, вы также можете хранить их типы в одном файле excel (это будет полезно, когда вы готовите инструкцию).

Так что ваш первенствовать будет:

Column 1 | Integer 
Column 2 | String 
Column 3 | Date 

и так далее

JXL позволит читать все это в вашу Java программу, хранить эту информацию в карте (java.util.HashMap) , поэтому на этом этапе у вас есть имена столбцов в вашей программе и их типы данных.

Теперь о создании подготовленного заявления.

String allColumnNames =""; 
foreach element in the hashmap, allColumnNames+=getKey() + "," 

поэтому на данный момент allColumnNames имеет все ваши имена столбцов

Сделать подготовленное заявление в сегментах:

String statement = "insert into table ("+ allColumnNames +") values " + <250 ? marks here>; 

Там идет ваш подготовленное заявление.

После этого, чтобы вставить материал, вы можете снова выполнить итерацию через hashmap и вызвать setString или setInt или что-то другое в зависимости от «значения» части хэш-карты.

Как я уже сказал, это длительный и вовлеченный процесс, но вы можете даже изменить эту процедуру, чтобы просто установить значения в файле excel, а затем вставить их непосредственно из excel в таблицу.

Смежные вопросы