JDBC и ADO.Net: сравнение API - PullRequest
       19

JDBC и ADO.Net: сравнение API

6 голосов
/ 27 октября 2010

Каковы аналогии между объектами, найденными в JDBC , и объектами, найденными в ADO.Net ?

Я знаю, что объектная модель в JDBC и ADO.Net не совсем одинакова, но я думаю, что среди них можно найти некоторые аналогии (и ключевые различия, о которых стоит упомянуть).

Это было бы полезно для тех, кто знает один API и хочет изучать другой, может служить отправной точкой или избегать недоразумений, вызванных предположениями об API, который хочет изучить.

например: Какой объект ADO.Net обеспечивает ту же функциональность / поведение, что и JDBC ResultSet? то же самое для PreparedStatemes и т. д. ...

Ответы [ 2 ]

5 голосов
/ 28 октября 2010

Вот простая последовательность для ADO.NET:

// 1. create a connection
SqlConnection conn = new SqlConnection(xyz)
// 2. open the connection
conn.Open();
// 3. create a command
 SqlCommand cmd = new SqlCommand("select * from xyz", conn);
// 4. execute and receive the result in a reader
SqlDataReader rdr = cmd.ExecuteReader();
// 5. get the results
while (rdr.Read())
{
//dosomething
}

Вот простая последовательность для JDBC:

// 1. create a connection
Connection con = DriverManager.getConnection(xyz);
// 2. create a statement     
Statement stmt = con.createStatement();
// 3. execute and receive results in a result set
ResultSet rs = stmt.executeQuery("SELECT * from xyz");
// 4. Get the results
while (rs.next()) 
{
// do something
}

А вот аналогия (ADO.NET => JDBC):

SqlConnection => Connection
SqlCommand => Statement
SqlDataReader => ResultSet
2 голосов
/ 22 ноября 2012

Не очень подробно с jdbc, но из того, что я знаю, ADO.NET следует отключенной архитектуре, где соединение устанавливается только на время выполнения или чтения запроса.Как только читатель прочитан, соединение может быть закрыто.Кэширование данных осуществляется с использованием наборов данных и адаптеров данных.В ADO.NET разрешено только одно чтение для каждого соединения.Хотя отключенная архитектура, безусловно, возможна в jdbc, она основана на концепции живого соединения, когда на одно соединение можно иметь несколько считывателей.

Другое отличие в API состоит в том, что имеет встроенную функциональность в jdbcчтобы получить последний вставленный идентификатор , в то время как в ADO его нет.

Также ознакомьтесь с хорошим сравнением кэширования данных в ADO и jdbc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...