Зафиксировать Eclipse ссылочное повреждение базы данных Java?

Метод Prepare на самом деле на DbCommand , что все классы, которые являются производными от него, подберут.

То, что он делает, зависит от поставщика базы данных, для которого DbCommand предназначен. Тем не менее, можно с уверенностью сказать (хотя это и не абсолютное правило), что в большинстве мест, если команда является хранимой процедурой, она не выдаст никаких операций (она задокументирована как таковая для переопределения для Prepare в SqlCommand ), поскольку хранимые процедуры обычно оптимизируют свои планы запросов из-за предыдущих вызовов, явных вызовов для оптимизации или при создании (опять же, в зависимости от базовой базы данных).

Однако, если вы не используете не хранимую процедуру, а скорее параметризованный запрос, сгенерированный на лету, то этот вызов даст базовой базе данных возможность сгенерировать оптимизированную версию запроса. .

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

Следует отметить, что SQL Server (по состоянию на 2005, IIRC) кэширует параметризованные планы запросов в зависимости от использования после первого выполнения (я думаю, что кэш - это кэш с ухудшенным временем, который сбрасывается или скорость его затухания снижается при последующих использует), поэтому, если вы собираетесь совершать несколько вызовов с одним и тем же параметризованным запросом, вы можете не получить большого выигрыша от вызова на Prepare, кроме как перенести работу по подготовке запроса заранее (что также может быть полезным, в зависимости от какую работу вы должны выполнить).

15
задан Rob W 18 December 2011 в 15:18
поделиться

7 ответов

Это сработало:

  • Экспорт настроек из текущего рабочего пространства (Файл-> Экспорт-> Общие-> Настройки)
  • Переключить рабочие пространства в новое рабочее пространство
  • Импортировать настройки в текущая рабочая область
  • Импортируйте свой старый проект в новую рабочую область (Файл-> Импорт-> Общие-> Существующие проекты в рабочую область), выбрав «Копировать проект»

. Это работает для исправления ссылок БД. Чтобы снова запустить SVN (и предположительно CVS):

  • Щелкните правой кнопкой мыши проект, выберите «Команда», выберите «Поделиться проектом». Выберите, какой тип репозитория управления версиями вы использовали, и нажмите «Далее». Eclipse должен понять, что ваш проект уже настроен для этого, и просто заставит вас нажать кнопку «Готово».
  • Обновите ваши исходные коды с помощью репозитория.
2
ответ дан 1 December 2019 в 00:23
поделиться

Первый выход из Eclipse. Затем в каталоге рабочей области удалите каталог .metadata / .plugins / org.eclipse.jdt.core / . В следующий раз, когда вы запустите Eclipse, он перестроит все свои внутренние индексы. Часто очистка проектов не требует восстановления всех этих метаданных.

39
ответ дан 1 December 2019 в 00:23
поделиться

Я бы посоветовал запустить Проект> Очистить ... в проекте. Это должно вызвать полную перекомпиляцию проекта.

0
ответ дан 1 December 2019 в 00:23
поделиться

Когда это происходит, мне обычно приходится удалять проекты из рабочей области, переходить в командную строку и rm - rf .settings .profile .classpath, а затем повторно импортировать проекты обратно. Иногда мне нужно удалить каталог метаданных (что означает, что мне нужно переустановить некоторые из моих плагинов). Я еще не нашел реального решения для этого. Очистка проекта не помогает.

У вас не должно быть «часов восстановления», если вы просто удалите .settings .profile и .classpath. Вам просто нужно повторно импортировать проекты после удаления их из рабочей области. Хотя это раздражает, это не должно занять более 5–10 минут.

1
ответ дан 1 December 2019 в 00:23
поделиться

Вы можете начать с попытки удалить свой проект (не удаляя, конечно, источники, только связанные с ним метаданные).

Затем вы повторно импортируете свой проект в свою рабочую область (поскольку .classpath и .project все еще находятся на вашем жестком диске)

Таким образом, рабочее пространство all не затрагивается, только часть, касающаяся текущего проекта.

0
ответ дан 1 December 2019 в 00:23
поделиться

a) выйти из Eclipse

b) удалить весь проект bin / целевые папки (например, с помощью командной строки)

#starting from current folder (".") search for folders 
# ("-type d") with name (-iname ) "target" or "bin"
# feed this to xargs which calls 
# rm -rf (remove recursive "-r" and force "-f") 
# with the results from find

find . -iname "target" -type d | xargs rm -rf 

или

find . -iname "bin" -type d | xargs rm -rf 

c) перезапустить eclipse

Обычно НЕ требуется удалять какой-либо проект из рабочего пространства или удалять .classpath или .setting!

d) очистить все проекты

0
ответ дан 1 December 2019 в 00:23
поделиться

Если это только на уровне проекта, Напоминаю, что вы можете просто закрыть проект (например, Project -> Close project), а затем снова открыть его (Project -> Open project). Вам даже не нужно перезапускать eclipse.

7
ответ дан 1 December 2019 в 00:23
поделиться
Другие вопросы по тегам:

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