Apache Commons DBUtils - Usando DataSource
Até agora, usamos objeto de conexão ao usar QueryRunner. Também podemos usar a fonte de dados sem problemas. O exemplo a seguir demonstrará como ler um registro usando a consulta Read com a ajuda de QueryRunner e datasource. Leremos um registro da Tabela de funcionários.
Sintaxe
QueryRunner queryRunner = new QueryRunner( dataSource );
Employee emp = queryRunner.query("SELECT * FROM employees WHERE first=?", resultHandler, "Sumit");
Onde,
dataSource - Objeto DataSource configurado.
resultHandler - Objeto ResultSetHandler para mapear o conjunto de resultados para o objeto Employee.
queryRunner - Objeto QueryRunner para ler objetos de funcionários do banco de dados.
Para entender os conceitos mencionados acima relacionados aos DBUtils, vamos escrever um exemplo que irá executar uma consulta de leitura. Para escrever nosso exemplo, vamos criar um aplicativo de amostra.
Degrau | Descrição |
---|---|
1 | Atualize o arquivo MainApp.java criado no capítulo DBUtils - Primeiro Aplicativo . |
2 | Compile e execute o aplicativo conforme explicado a seguir. |
A seguir está o conteúdo do Employee.java.
public class Employee {
private int id;
private int age;
private String first;
private String last;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getFirst() {
return first;
}
public void setFirst(String first) {
this.first = first;
}
public String getLast() {
return last;
}
public void setLast(String last) {
this.last = last;
}
}
A seguir está o conteúdo do CustomDatasource.java.
import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSource;
public class CustomDataSource {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/emp";
// Database credentials
static final String USER = "root";
static final String PASS = "admin";
private static DataSource datasource;
private static final BasicDataSource basicDataSource;
static {
basicDataSource = new BasicDataSource();
basicDataSource.setDriverClassName(JDBC_DRIVER);
basicDataSource.setUsername(USER);
basicDataSource.setPassword(PASS);
basicDataSource.setUrl(DB_URL);
}
public static DataSource getInstance() {
return basicDataSource;
}
}
A seguir está o conteúdo do MainApp.java Arquivo.
import java.sql.SQLException;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
public class MainApp {
public static void main(String[] args) throws SQLException {
DbUtils.loadDriver(JDBC_DRIVER);
QueryRunner run = new QueryRunner(CustomDataSource.getInstance());
ResultSetHandler<Employee> resultHandler = new BeanHandler<Employee>(Employee.class);
Employee emp = queryRunner.query("SELECT * FROM employees WHERE id=?",
resultHandler, 103);
//Display values
System.out.print("ID: " + emp.getId());
System.out.print(", Age: " + emp.getAge());
System.out.print(", First: " + emp.getFirst());
System.out.println(", Last: " + emp.getLast());
}
}
Quando terminar de criar os arquivos de origem, vamos executar o aplicativo. Se tudo estiver bem com o seu aplicativo, ele imprimirá a seguinte mensagem.
ID: 103, Age: 33, First: Sumit, Last: Mittal