开发者

JDBC and ADO.Net: API comparison

开发者 https://www.devze.com 2023-01-22 09:00 出处:网络
What 开发者_如何学编程are the analogies between the objects found in JDBC and the ones found in ADO.Net?

What 开发者_如何学编程are the analogies between the objects found in JDBC and the ones found in ADO.Net?

I know the object model in JDBC and ADO.Net are not exactly the same, but I think some analogies can be found among them (and key differences worth stating).

That would be useful for those who knows one API and wants to learn the other, serving as a starting point maybe, or avoiding misunderstandings caused by assumptions one makes about the API that wants to learn.

e.g.: Which is the ADO.Net object that provides the same functionality/behavior as the JDBC ResultSet? the same for PreparedStatemes, and so on...


Here is a simple sequence for 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
}

Here is a simple sequence for 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
}

And here is the analogy (ADO.NET => JDBC):

SqlConnection => Connection
SqlCommand => Statement
SqlDataReader => ResultSet


Not very thorough with jdbc, but from what I know ADO.NET follows a disconnected architecture, where a connection is established only for the time a query has to be executed or read. Once the reader is read, connection can be closed. The data caching are achieved using datasets and data adapters. In ADO.NET only one reader is allowed per connection. While disconnected architecture is certainly possible in jdbc, its built on the concept of having live connection where you can have multiple readers per connection.

Another difference in the API is that there is built in functionality in jdbc to get the last inserted id, while ADO lacks one.

Also read a nice comparison on data caching in ADO and jdbc.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号