Este documento discute como se conectar a bancos de dados usando drivers JDBC no Java, mostrando como carregar o driver, obter uma conexão e executar consultas SQL simples. Ele fornece código de exemplo para se conectar a bancos de dados relacionais como Postgres e fontes de dados SaaS como Salesforce.
1. Conectando seu banco de
dados usando JDBC
Este post mergulha usando o driver (s) Progress JDBC para se
conectar a vários bancos de dados usando Java e programação
JDBC padrão.
No primeiro tutorial da série, vamos mostrar-lhe como você pode
usar os drivers Progress DataDirect JDBC em seu aplicativo Java
para se conectar ao seu banco de dados.
drivers JDBC são a forma mais convencional de que muitos
desenvolvedores usam para se conectar a bancos de dados de seus
aplicativos Java. Esses drivers, uma vez principalmente
disponíveis para bancos de dados relacionais, estão agora
disponíveis para quase qualquer tipo de fonte de dados, tais como
Big Data, NoSQL, e SaaS.
Mesmo com todos esses diferentes tipos de fontes de dados, ainda
é fácil de conectar e trabalhar com eles usando drivers Progress
DataDirect JDBC. Para demonstrar isso, temos um planejado um
"JDBC - Revisited" tutorial série de três partes, que abrange
vários conceitos de criar uma ligação, a execução de consultas
simples, extraindo metadados e recursos de interoperabilidade DB
de motoristas DataDirect.
No primeiro tutorial da série, vamos mostrar-lhe como você pode
usar os drivers Progress DataDirect JDBC em seu aplicativo Java
para se conectar ao seu banco de dados. Os principais objectivos
deste tutorial são demonstrar:
1. Ligação à fonte de dados usando JDBC.
2. Executando consultas SQL simples para buscar dados.
2. Para o propósito deste tutorial, vamos estar usando um banco de
dados relacional (Postgres) e fonte de dados SaaS (Salesforce)
como nossas fontes de dados. O objetivo é demonstrar a
simplicidade de nossos motoristas Progress DataDirectJDBC para
Postgres e Salesforce para conectar e recuperar os dados,
independentemente do tipo de fonte de dados.
Pré-requisitos
Esperamos que você tem a seguinte configuração antes de
prosseguir com este tutorial.
1. Ter Postgres instalado em sua máquina / servidor.
2. Ter uma conta Salesforce. No caso de você não tiver um,
inscreva-se para um.
3. Faça o download e instalar os drivers Progress DataDirect
JDBC para PostgreSQL e Salesforce.
Se você estiver interessado em se conectar a apenas uma fonte de
dados, então você só precisa configurar um destes.
Importação de banco de dados de
exemplo em Postgres
1. Se você precisa de dados para o seu Postgres, você pode baixar
o exemplo banco de dados de aluguel de DVD e importá-lo. Para
importar o banco de dados exemplo, criar um banco de dados
Postgres, executando o seguinte comando, quer em psql ou
pgAdmin. criar dvdrentals de banco de dados;
2. Agora, execute o seguinte comando para importar o banco de
dados a partir do backup do banco de dados transferidos.
pg_restore -U -d dvdrentals /path/to/dvdrental.tar.
Conectando-se a sua fonte de dados
3. Com tudo configurado para você se conectar ao banco de dados,
vamos começar a diversão escrevendo código para se conectar à
fonte de dados.
• Abra o seu IDE favorito e crie um novo projeto Java.
A próxima coisa importante será adicionar os drivers JDBC no
caminho de construção do projeto.
1. Para fazer isso no eclipse, clique com o botão direito sobre o
Projeto no Package Explorer -> Caminho de Construção ->
Adicionar Arquivo externas. Localize o arquivo JAR do driver
JDBC e pressione Abrir.
2. Para fazer isso no IntelliJ, clique direito em pasta do projeto ->
configurações do módulo Open, isso deve abrir uma nova janela.
Ir para bibliotecas sob Configurações do projeto e clique em
Adicionar para localizar e adicionar os arquivos JDBC jar para o
projeto.
3. Para se conectar a um banco de dados usando JDBC, primeiro
precisamos carregar o driver JDBC na memória e usar o
DriverManager para obter uma conexão com banco de dados. O
código para demonstrar este como se segue:
public class JDBCUtil {
String className, URL, user, password;
Connection connection;
public JDBCUtil(String className, String URL, String user, String
password) {
this.className = className;
this.URL = URL;
this.user = user;
this.password = password;
this.connection = null;
}
public void getConnection() {
//Load the driver class
try {
Class.forName(className);
} catch (ClassNotFoundException ex) {
4. System.out.println("Unable to load the class. Terminating
the program");
System.exit(-1);
}
//get the connection
try {
connection = DriverManager.getConnection(URL, user, passwo
rd);
} catch (SQLException ex) {
System.out.println("Error getting connection: " + ex.getMe
ssage());
System.exit(-1);
} catch (Exception ex) {
System.out.println("Error: " + ex.getMessage());
System.exit(-1);
}
}
}
1. As coisas importantes a observar aqui seria o lineClass.forName
(className), que é responsável por carregar o driver para a
memória.
2. A próxima coisa importante é a conexão da linha =
DriverManager.getConnection (URL, usuário, senha). Esta linha
começa realmente a conexão com o banco de dados se todos os
parâmetros estão configurados corretamente e armazena na
objeto de conexão que pode ser usado mais tarde para executar
consultas.
3. Agora vamos falar sobre os parâmetros que nós passamos para
os dois passos acima.
1. Para carregar a classe, estamos passando className para que o
motorista pode ser carregado na memória. Cada driver JDBC tem
um className único, e uma vez que estamos carregando o driver
Progress DataDirect Postgres, você pode inicializar a propriedade
className na classe JDBCUtil com nome de classe do motorista
do com.ddtek.jdbc.postgresql.PostgreSQLdriver.
2. O próximo valor importante que você teria que passar para
obter uma conexão de DriverManager seria o JDBC URL. Cada
banco de dados tem uma forma única de configurar o URL, e para
o motorista Progress DataDirect Postgres JDBC seria no formato
5. de jdbc: DataDirect: postgresql: // <nome do host>: <pós>;
DatabaseName = <banco de dados Name>
3. Os outros valores que você passa para
DriverManager.getConnection () método seria o nome de usuário
e senha para o seu banco de dados. Se todos estes valores são
perfeitamente configurado, você receberá de volta um objeto de
conexão ou você receberá uma exceção.
4. Para ligar a Salesforce, você apenas muda o className para
com.ddtek.jdbc.sforce.SForceDriver eo JDBC URL para o que
seria, no formato de jdbc: DataDirect: sforce: // <hostname>;
SecurityToken = <token de >. Com tais mudanças mínimas, você
pode se conectar a Salesforce facilmente. Nota: Um token de
segurança não é necessária quando Salesforce foi configurado
para intervalos de IP confiáveis e que o usuário está efetuando
login a partir de um endereço IP confiável.
Executando consultas SQL simples
1. Agora que temos criado uma conexão com o banco de dados,
podemos executar consultas SQL com a sua ajuda. Aqui está um
código de exemplo para demonstrar a execução de consulta SQL e
imprimi-lo para o console:
public void executeQuery(String query)
{
ResultSet resultSet = null;
try
{
//executing query
Statement stmt = connection.createStatement();
resultSet = stmt.executeQuery(query);
//Get Number of columns
ResultSetMetaData metaData = resultSet.getMetaData();
int columnsNumber = metaData.getColumnCount();
//Printing the results
while(resultSet.next())
{
for(int i = 1; i <= columnsNumber; i++)
{
System.out.printf("%-25s", (resultSet.getObject(i) !=
null)?resultSet.getObject(i).toString(): null );
}
6. }
}
catch (SQLException ex)
{
System.out.println("Exception while executing statement. Termi
nating program... " + ex.getMessage());
}
catch (Exception ex)
{
System.out.println("General exception while executing query. T
erminating the program..." + ex.getMessage());
}
}
1. 1. As coisas importantes para observar são
connection.createStatement () e stmt.executeQuery (query).
O método createStatement () cria um objeto Statement para
enviar instruções SQL para seu banco de dados e
executeQuery (query) executa sua consulta SQL e retorna
um objeto ResultSet.
2. 2. Para imprimir os valores no conjunto de resultados,
obtemos o número de colunas para a tabela primeiro usando
ResultSetMetaData - você vai saber mais sobre isso na
próxima parte desta série tutorial. Em seguida, percorrer
cada linha que começa a partir do ResultSet e imprimir os
valores para o console. Abaixo está uma imagem dos
resultados de uma consulta simples que eu corri contra o
7. Salesforce para sua referência:
Fácil Conexão e Execução
Espero que este tutorial ajudou a entender como é fácil se
conectar ao seu banco de dados e executar consultas SQL simples
em Java usando drivers Progress DataDirect JDBC. Além disso, eu
ter empurrado o código que é usado neste tutorial para o GitHub
para sua referência. Se você ainda tiver quaisquer problemas de
conexão com o banco de dados usando drivers Progress
DataDirect JDBC, deixe seus comentários abaixo ou contacte o
suporte.
Na próxima parte deste "JDBC - Revisited" série tutorial, vamos
mostrar-lhe como obter os metadados de seus bancos de dados
usando JDBC. Assine o nosso blog via e-mail ou feed RSS para
atualizações para esta série de tutoriais.