简体   繁体   中英

What is a datasource in java? Can someone please explain me in simple language?

What is a DataSource in java? Can someone please explain me in simple language?

DataSource implementation classes allow you to use connection pool and loose coupling for connectivity .

  1. Most of the times we are looking for loose coupling for connectivity so that we can switch databases easily.

  2. Creating connections can be heavy process and it is not a good idea to let every part of program create its own connections which can lead to resource starvation and slow performance. that's why we use connection pooling. most database drivers provide datasource implementation classes that can be used in connection pool.

Data Source is explained very well here. Please go through the link Data Source in Java

DataSource is an abstraction, a way to represent getting access to data from some source with some connection. It frees you to not worry about,

  1. Having to think about how connection is established and will be maintained from many varying sources (think different databases, cloud storage resources)
  2. Not worrying about what will happen if multiple clients request data from the same source and if those clients will get a proper connection object, or null - because the number of connections, there optimization and scheduling is a challenge on its own.
  3. In the same respect, easier to manage connection timeout settings.

Database vendors and data providers need not worry about you learning their specific API if they can go ahead and implement the DataSource interface which describes how your service/server may connect to them, and you need not worrying about connection intricacies and so on.

Here is a good read from the official documentation itself on Oracle .

To answer your main question, I'll summarize in the below 3 points,

  1. An interface to be implemented by a vendor
  2. A factory pattern for connections to the actual data source
  3. Its main functions to be implemented and of concern are just getConnection() and getConnection(String username, String password) where both return the Connection object ( read ).

According to documentation , the DataSouce interface is something like DriverManager . In most applications, it is connection to the database.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM