In this example you will learn how to create and configure a DriverManagerDataSource
object that will be used by the JdbcTemplate
object. There are some information required when creating a DataSource
including the JDBC driver class, the JDBC Url of the target database, the username
and password
for connecting to database server.
package org.kodejava.spring.jdbc;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import javax.sql.DataSource;
import java.util.List;
import java.util.Map;
public class DataSourceDemo {
public static final String DRIVER = "com.mysql.cj.jdbc.Driver";
public static final String JDBC_URL = "jdbc:mysql://localhost/musicdb";
public static final String USERNAME = "root";
public static final String PASSWORD = "";
public static void main(String[] args) {
// Creates an instance of DriverManagerDataSource and pass
// it to the JdbcTemplate.
DataSource source = getDataSource();
JdbcTemplate template = new JdbcTemplate(source);
// After creating a template with a data source inject we
// can do a database manipulation such as the CRUD operation.
System.out.println("DataSource = " + template.getDataSource());
List<Map<String, Object>> records = template.queryForList("SELECT * FROM record");
for (Map<String, Object> record : records) {
System.out.println("Records = " + record);
}
}
/**
* Returns a DataSource object for connection to the database.
*
* @return a DataSource.
*/
private static DataSource getDataSource() {
// Creates a new instance of DriverManagerDataSource and sets
// the required parameters such as the Jdbc Driver class,
// Jdbc URL, database username and password.
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(DataSourceDemo.DRIVER);
dataSource.setUrl(DataSourceDemo.JDBC_URL);
dataSource.setUsername(DataSourceDemo.USERNAME);
dataSource.setPassword(DataSourceDemo.PASSWORD);
return dataSource;
}
}
Maven Dependencies
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>6.1.10</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.4.0</version>
</dependency>
</dependencies>
Latest posts by Wayan (see all)
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024
Is there a way to rewrite this code to obscure the access details – database location, username and password?
Hi Raman,
One solution is to encrypt the database access details (url, username, password). Extends the
DriverManagerDataSource
class to create a version that decrypt all the encrypted database access details.