LINQ к удержанному от использования SQL?

Позорное java.sql.SQLException: не найдено подходящего драйвера

blockquote>

Это исключение может иметь в основном две причины:

1. Драйвер JDBC не загружен

Вам необходимо убедиться, что драйвер JDBC помещен в собственную папку /lib сервера.

[/g15]

Или, если на самом деле вы не используете источник данных пула соединений, управляемый сервером, а вручную запускаете DriverManager#getConnection() в WAR , тогда вам нужно поместить драйвер JDBC в WAR /WEB-INF/lib и выполнить ..

Class.forName("com.example.jdbc.Driver");

.. в вашем коде перед первый DriverManager#getConnection() вызов, посредством которого вы делаете убедитесь, что вы не проглатываете / игнорируете любые ClassNotFoundException, которые могут быть выброшены им, и продолжайте поток кода, как будто ничего исключительного не произошло. См. Также Где я должен разместить драйвер JDBC для пула соединений Tomcat?

2. Или URL-адрес JDBC находится в неправильном синтаксисе

Вам нужно убедиться, что URL JDBC соответствует документации драйвера JDBC и помните, что он обычно чувствителен к регистру. Когда URL-адрес JDBC не возвращает true для Driver#acceptsURL() для любого из загруженных драйверов, тогда вы также получите именно это исключение.

В случае PostgreSQL это документально здесь .

С JDBC база данных представлена ​​URL-адресом (Uniform Resource Locator). С PostgreSQL ™ это принимает одну из следующих форм:

  • jdbc:postgresql:database
  • jdbc:postgresql://host/database
  • jdbc:postgresql://host:port/database
blockquote>

В случае с MySQL это здесь .

Общий формат URL-адреса JDBC для подключения к серверу MySQL следующим образом: элементы в квадратных скобках ([ ]) являются необязательными:

jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]] » [?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

blockquote>

В случае Oracle это документировано здесь .

Существует 2 синтаксиса URL, старый синтаксис, который будет работать только с SID и новый с именем службы Oracle.

Старый синтаксис jdbc:oracle:thin:@[HOST][:PORT]:SID

Новый синтаксис jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

blockquote>

См. также:

55
задан Joe 14 June 2010 в 10:30
поделиться

6 ответов

Для всех "Linq-to-SQL мертв": сам Скотт Гатри на TechEd Europe четко сказал, что Linq-to-SQL ПОЛНОСТЬЮ ПОДДЕРЖИВАЕТСЯ в . NET 4, а Дэмиен Гард опубликовал запись в блоге о том, какие изменения и улучшения были сделаны для Linq-to-SQL в .NET 4.

Цитируя Марка Твена: "Сообщения о моей смерти были сильно преувеличены".......

60
ответ дан 7 November 2019 в 07:21
поделиться

LINQ к инструментам SQL в Visual Studio

LINQ к SQL был первой объектно-реляционной технологией отображения, выпущенной Microsoft. Это работает хорошо в основных сценариях и продолжает поддерживаться в Visual Studio, но это больше не находится в процессе активного развития. Использование LINQ к SQL при поддержании унаследованного приложения это уже использует его, или в простых приложениях, которые используют SQL Server и не требуют отображения мультитаблицы. В целом новые приложения должны использовать Платформу Объекта, когда объектно-реляционный слой картопостроителя требуется.

0
ответ дан 7 November 2019 в 07:21
поделиться

Думаю, их слияние неизбежно. EF - это действительно реализация LINQ на уровне предприятия над объектами db. linq2sql был, по сути, доказательством концепции (и многого другого), которая на самом деле выросла, но подпитывала многие идеи, которые мы сейчас видим в EF. в конце дня уровень DAL (nhibernate, EF, l2s, subsonic и т. д.) должен быть довольно далеко вниз по цепочке, чтобы свести на нет любые различия в клиентском коде BO, который реализует службу LINQ - горячая замена будет концом игра через DI.

0
ответ дан 7 November 2019 в 07:21
поделиться

Нет, это не так. Команда все еще работает над его улучшением.

7
ответ дан 7 November 2019 в 07:21
поделиться

Обязательно посмотрите эту статью, опубликованную на InfoQ.com - она действительно интересная. Ее вывод: "[В долгосрочной перспективе LINQ to SQL и LINQ to Entities сольются. В то же время, разработка LINQ to SQL не будет полностью прекращена."

.
5
ответ дан 7 November 2019 в 07:21
поделиться

Последний раз я проверял, этот самый сайт использует (или использовал) Linq To SQL. Джоэл Спольски упоминает об этом в своем GoogleTechTalk: http://www.youtube.com/watch?v=NWHfY_lvKIQ .

Говоря о программном обеспечении, «мертвый» является образным модификатором (программное обеспечение не умирает в буквальном, биологическом смысле), поэтому эти дебаты могут продолжаться до тех пор, пока вовлеченные стороны отказываются определять в каком-либо буквальном смысле, что оно средство для Linq To Die. Или для краткости LTD. Следовательно, с этого момента дебаты о LTD затянулись на два года. Все из-за небольшой языковой двусмысленности.

Те, кто говорят, что «L2S мертв», обычно имеют в виду тот факт, что L2S не получит слишком много (если таковые будут) новых функций. Обновления Linq (например, обновления, упомянутые в сообщении Damien Guard ), скорее всего, будут ограничиваться обновлениями производительности, удобства использования и стабильности. Конечно, некоторые разработчики могут на самом деле возразить, что это хорошо (вероятно, те же разработчики, которые немного недовольны новым динамическим типом ).

Те, кто говорит, что «L2S не мертв», обычно имеют в виду тот факт, что L2S не будет полностью отключен от .Net (по крайней мере, в ближайшее время). Подумайте: ADO. Он может потерять часть своей популярности среди практикующих разработчиков (и это может быть невысказанное желание тех хитрых ребят из Microsoft), но это не значит, что вы не сможете использовать L2S, если захотите. Это просто означает, что Microsoft не пытается соблазнить массы этим.

Когда я начинаю проект, я думаю, это здорово, что у меня есть выбор между EF и L2S.Как указывает Билл Вагнер , для обоих есть время и место.

12
ответ дан 7 November 2019 в 07:21
поделиться
Другие вопросы по тегам:

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