🚀 Master Java database programming, JDBC DataSource, and MySQL!
🔔 Subscribe to Ram N Java on YouTubeWhy Use JDBC DataSource with MySQL?
In standard Java database applications, obtaining connections through the javax.sql.DataSource interface is preferred over using DriverManager. DataSource objects decouple database connection details and credentials from your application logic, making your code easier to maintain, configure, and integrate with enterprise containers.
MySQL provides the MysqlDataSource class (located in the com.mysql.jdbc.jdbc2.optional package within mysql-connector-java.jar), which implements the DataSource interface and provides clean setter methods to configure database connection properties.
The Database Table (world.city)
In this demonstration, we query the standard city table available in MySQL's sample world database:
SELECT ID, Name, CountryCode, District, Population
FROM city;
Complete Java Source Code Example
Here is the complete Java implementation showing how to configure MysqlDataSource, acquire a connection, execute a Statement, and iterate through the ResultSet:
package com.ram.jdbc;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
public class JDBCDataSourceDemo {
static final String DB_URL = "jdbc:mysql://localhost:3306/world";
static final String USER = "root";
static final String PASS = "root";
// Factory method to create and configure MysqlDataSource
public static DataSource getMySQLDataSource() {
MysqlDataSource mysqlDS = new MysqlDataSource();
mysqlDS.setURL(DB_URL);
mysqlDS.setUser(USER);
mysqlDS.setPassword(PASS);
return mysqlDS;
}
public static void main(String[] args) {
JDBCDataSourceDemo demo = new JDBCDataSourceDemo();
demo.getCityInformation();
}
public void getCityInformation() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// Step 1: Obtain DataSource instance
DataSource dataSource = getMySQLDataSource();
// Step 2: Acquire connection from DataSource
conn = dataSource.getConnection();
// Step 3: Create Statement and execute query
stmt = conn.createStatement();
String sql = "SELECT ID, Name, CountryCode, District, Population FROM city";
rs = stmt.executeQuery(sql);
// Step 4: Process ResultSet
System.out.println("ID | Name | CountryCode | District | Population");
System.out.println("-------------------------------------------------");
while (rs.next()) {
int id = rs.getInt("ID");
String name = rs.getString("Name");
String countryCode = rs.getString("CountryCode");
String district = rs.getString("District");
int population = rs.getInt("Population");
System.out.println(id + " | " + name + " | " + countryCode + " | " + district + " | " + population);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// Step 5: Clean up database resources
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
Key Steps & Best Practices
-
Configure MysqlDataSource: Instantiate
MysqlDataSourceand populate the URL, username, and password via its setter methods. -
Program to the DataSource Interface: Return
javax.sql.DataSourceto keep your client code generic and decoupled from vendor-specific driver classes. -
Simpler Connection Setup: With
dataSource.getConnection(), you eliminate the need for explicitClass.forName()driver registration calls. -
Resource Cleanup: Always close the
ResultSet,Statement, andConnectioninside afinallyblock to avoid leaking system resources.
Related Tutorials You Might Enjoy
Click here to watch in Youtube : https://www.youtube.com/watch?v=Bj1V1JNBTn8
Click the below Image to Enlarge
![]() |
| JDBC DataSource [Mysql DB] |
![]() |
| JDBC DataSource [Mysql DB] |
![]() |
| JDBC DataSource [Mysql DB] |
![]() |
| JDBC DataSource [Mysql DB] |




No comments:
Post a Comment