Разница между созданием объекта и созданием массива заключается в следующем:
new ArrayList<String>()
указывают на вызов конструктора. anewarray
, multianewarray
и newarray
. То, что у классов массивов нет конструкторов, можно продемонстрировать, выполнив
System.out.println(int[].class.getConstructors().length);
, который возвращает 0.
В конце концов, это сводится к решениям, которые разработчики языков приняли более 20 лет назад, и на которые повлияло решение по проектированию из других существующих языков (например, C ++).
Мы используем это для создания сценариев дб, я должен был бы увеличить его снова, чтобы гарантировать, что это создает иждивенцев объектов сначала..., но у меня еще не было проблемы. http://www.red-gate.com/products/SQL_Compare/index.htm
Lecter имеет хороший подход. Можно связать эти сценарии с помощью powershell сценария (или другой язык)
запустите скрипт:
PS builddir:\> .\buildsql.ps1 -currentbuilddir "C:\Documents and Settings\sam\My Documents\svn\ticketing" -buildfile "sqlbuild.sql" -teardownfile
"teardown.sql"
сценарий powershell:
param($currentbuilddir,$buildfile1,$teardownfile)
new-psdrive -name builddir -PSProvider filesystem -Root (resolve-path $currentbuilddir)
cd builddir:
rm $buildfile1
rm $teardownfile
Get-item Scripts_Build_1* | ForEAch-object {cat $_ >> $buildfile1; "GO --SYSTEM INSERTED GO--------------" >> $buildfile1}
Get-item Scripts_Build_3* | ForEAch-object {cat $_ >> $teardownfile; "GO --SYSTEM INSERTED GO------------" >> $teardownfile}
Здесь, я удаляю файл типа "build" и разъединяю файлы - я на самом деле работал над применением sql собственное шифрование к базе данных, таким образом, разрушение не может быть применимым. У меня были все свои сценарии в одном каталоге, таким образом, Вам, возможно, придется изменить этот сценарий, чтобы сделать некоторую рекурсию, я буду думать.
Мой ответ будет немного сложным, и он работает, только если Вы пишете сценарий своей всей базы данных (т.е. сохраните все в сценариях SQL). То, что мы сделали в крупном проекте, было, организуют сценарии в следующую структуру:
Имена папок являются, конечно, нашим случайным выбором, можно всегда располагать вещи по-другому. После этого мы создали сценарий пакетной обработки для слияния всех тех файлов в единственном SQL в следующем порядке:
Ключевой прием должен записать Ваши сценарии способом, они могут быть выполнены тысячу раз. Это означает: отбросьте свои процедуры перед созданием их проверьте, существует ли таблица прежде, чем создать его, проверьте, существует ли строка прежде, чем включить его статичный и т.д.
Это не прекрасно, но это сделало задание.
Можно попробовать Объект xSQL по http://www.xsqlsoftware.com/Product/Sql_Schema_Compare.aspx, который Он работал отлично для меня. Сценарий создается в правильном порядке каждый раз, когда это возможно (существуют случаи, где сгенерированный сценарий не может быть выполнен непосредственно, но в большинстве случаев это работает),