Dica Rápida: Chamando Stored Procedure em Java Read More »
The post Dica Rápida: Chamando Stored Procedure em Java appeared first on Aprenda Java.
]]> Olá amigos hoje a dica é Stored Procedure. Muitos sistemas possuem suas regras de negócio centralizadas no banco de dados e as Stored Procedure são os objetos que realizam as operações de Inclusão, alteração, exclusão e até mesmo consulta no Banco de dados.
Por este motivo é importante sabermos trabalhar com esses objetos em Java.
Aprenda como acessar o banco de dados MySQL aqui.
Veja o script de criação da tabela.
CREATE TABLE tbaluno (
matricula INT NOT NULL ,
nome VARCHAR(45) NULL ,
telefone VARCHAR(45) NULL ,
email VARCHAR(45) NULL ,
datacadastro DATETIME NULL,
PRIMARY KEY (matricula));
Agora vejamos o script para geração de massa de dados:
insert into tbaluno (matricula, nome, telefone, email, datacadastro)
values (1, 'maria da silva','5555-9887','maria.silva@feltex.com.br', '2020-10-10');
insert into tbaluno (matricula, nome, telefone, email, datacadastro)
values (2, 'Jose da silva','2223-3222','jose.silva@feltex.com.br', '2020-10-10');
insert into tbaluno (matricula, nome, telefone, email, datacadastro)
values (3, 'Bruna silva','4412-2234','bruna.silva@feltex.com.br', '2020-10-10');
Criaremos uma procedure que nos retorna o total de alunos existentes em nossa tabela de alunos.
DELIMITER $$
CREATE PROCEDURE Total_Alunos(OUT total INT)
BEGIN
SELECT COUNT(matricula) INTO total FROM tbAluno;
END $$
Abaixo temos o código Java que executa a procedure e exibe o retorno.
package br.com.feltex.jdbc.avancado;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
public class ChamaProcedure {
public static Connection getConexao() {
Connection conexao = null;
String usuario = "root";
String senha = "teco01";
String nomeBancoDados = "bdacademicnet";
try {
conexao = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/" + nomeBancoDados, usuario,
senha);
} catch (Exception e) {
e.printStackTrace();
}
return conexao;
}
public static void main(String[] args) {
CallableStatement callableStatement = null;
Connection con = null;
try {
// Realiza a conexão com o banco de dados
con = getConexao();
//Prepara a chamada para a procedure. Observe que há "?"
// Que neste caso é o parâmetro de saída.
callableStatement = con.prepareCall("{CALL Total_Alunos(?)}");
//Informa o tipo de retorno
callableStatement.registerOutParameter(1, java.sql.Types.INTEGER);
// Executa a Stored procedure
callableStatement.execute();
// Faz a leitura do retorno
Integer totalAlunos = callableStatement.getInt(1);
System.out.println("Total alunos: " + totalAlunos);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Por hoje é só meus amigos e Vida que segue!
Links relacionados
Instalação e Configuração do Banco de Dados MySQL
Não se esqueça de curtir este post nas redes sociais. Dê a sua contribuição social e ajude o autor:
The post Dica Rápida: Chamando Stored Procedure em Java appeared first on Aprenda Java.
]]>
Batch update: Como fazer atualização em lote em Java: Read More »
The post Batch update: Como fazer atualização em lote em Java: appeared first on Aprenda Java.
]]> Olá Amigos, hoje iremos mostrar como podemos fazer atualização em Lote no Java o chamado batch update. Para isso precisaremos criar uma massa de teste com 10000 registros. Em seguida será feita uma inserção via JDBC utilizando Insert normalmente e outra vez utilizando a abordagem batch update. Veja a seguir os resultados que tivemos batch update X Insert simples.
CREATE TABLE tbaluno (
matricula INT NOT NULL ,
nome VARCHAR(45) NULL ,
telefone VARCHAR(45) NULL ,
email VARCHAR(45) NULL ,
datacadastro DATETIME NULL );
Atenção: não foi criada a chave primária para evitar conflito na geração das chaves pelo programa!
Inicialmente devemos criar a classe Aluno conforme código abaixo.
Ela servirá como modelo de negócio para atualizarmos a tabela no banco de dados.
package br.com.feltex.jdbc;
import java.io.Serializable;
import java.util.Date;
public class Aluno implements Serializable {
private static final long serialVersionUID = -309513637403441918L;
private Long matricula;
private String nome;
private String telefone;
private String email;
private String endereco;
private Date dataCadastro;
public Aluno() {
}
public Aluno(Long matricula) {
super();
this.matricula = matricula;
}
public Aluno(Long matricula, String nome) {
super();
this.matricula = matricula;
this.nome = nome;
}
public Date getDataCadastro() {
return dataCadastro;
}
public String getEmail() {
return email;
}
public String getEndereco() {
return endereco;
}
public Long getMatricula() {
return matricula;
}
public String getNome() {
return nome;
}
public String getTelefone() {
return telefone;
}
public void setDataCadastro(Date dataCadastro) {
this.dataCadastro = dataCadastro;
}
public void setEmail(String email) {
this.email = email;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public void setMatricula(Long matricula) {
this.matricula = matricula;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
@Override
public String toString() {
return "Aluno [matricula=" + matricula + ", nome=" + nome
+ ", telefone=" + telefone + ", email=" + email
+ ", dataCadastro=" + dataCadastro + "]";
}
}
A seguir teremos a classe principal que executará as ações no banco de dados e fará a comparação entre os tempos gastos entre as operações Uma a uma e tipo de atualização via lote.
Temos o método “gerarMassa” que criará uma coleção de alunos que será inserido no Banco de dados. O método “executarBatch” faz as inserções dos dados em blocos. Temos também o “executarUnitario” que faz as inserções item por item. Há também o método “getConexao” que recupera um conexão com o banco de Dados. Por último, mas não menos importante, há o método “main” que inicia a aplicação.
package br.com.feltex.jdbc.avancado;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import br.com.feltex.jdbc.Aluno;
public class Transacao {
public static void gerarMassa(){
for (int i = 0; i < 10000; i++) {
Aluno aluno = new Aluno();
aluno.setMatricula(Long.valueOf(i));
aluno.setNome("Jose" + i);
aluno.setTelefone("22352-" + i);
aluno.setEmail("Jose" + i + "@feltex.com.br");
aluno.setEndereco("RUA a Numero: " + i);
aluno.setDataCadastro(new Date());
listaAlunos.add(aluno);
}
}
static List listaAlunos = new ArrayList<>();
public static void executarBatch() {
Long inicio = System.currentTimeMillis();
Long fim = 0L;
Connection conexao = null;
try {
conexao = getConexao();
conexao.setAutoCommit(false);
PreparedStatement pstm = conexao
.prepareStatement("Insert into tbaluno (matricula, nome," + " telefone, email, datacadastro) values (?,?,?,?,?)");
int contador = 0;
for (Aluno aluno : listaAlunos) {
contador++;
pstm.setLong(1, aluno.getMatricula());
pstm.setString(2, aluno.getNome());
pstm.setString(3, aluno.getTelefone());
pstm.setString(4, aluno.getEmail());
pstm.setDate(5, new java.sql.Date(aluno.getDataCadastro()
.getTime()));
pstm.addBatch();
}
if ((contador % 100) == 0) {
pstm.executeBatch();
}
conexao.commit();
pstm.close();
conexao.close();
fim = System.currentTimeMillis();
} catch (Exception e) {
try {
conexao.rollback();
} catch (Exception e2) {
e.printStackTrace();
}
e.printStackTrace();
}
System.out.println("executarBatch Tempo total[ms]: "
+ (fim - inicio));
}
public static void executarUnitario() {
Long inicio = System.currentTimeMillis();
Long fim = 0L;
Connection conexao = null;
try {
conexao = getConexao();
PreparedStatement pstm = conexao
.prepareStatement("Insert into tbaluno (matricula, nome,"
+ " telefone, email, datacadastro) values (?,?,?,?,?)");
for (Aluno aluno : listaAlunos) {
pstm.setLong(1, aluno.getMatricula());
pstm.setString(2, aluno.getNome());
pstm.setString(3, aluno.getTelefone());
pstm.setString(4, aluno.getEmail());
pstm.setDate(5, new java.sql.Date(aluno.getDataCadastro()
.getTime()));
pstm.execute();
}
pstm.close();
conexao.close();
fim = System.currentTimeMillis();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("executarUnitario Tempo total [ms]: "
+ (fim - inicio));
}
/**
*
* @return
*/
public static Connection getConexao() {
//TODO Remover este código desta classe
Connection conexao = null;
String usuario = "root";
String senha = "root";
String nomeBancoDados = "bdacademicnet";
try {
conexao = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/" + nomeBancoDados, usuario,
senha);
} catch (Exception e) {
e.printStackTrace();
}
return conexao;
}
public static void main(String[] args) {
gerarMassa();
for (int i = 0; i < 10; i++) {
executarUnitario();
executarBatch();
}
}
}
A saída deve ser parecida com a imagem abaixo:
A execução desde exemplo nos mostra qual a vantagem de utilizamos de utilizar a gravação em lotes quando temos grandes volumes de dados. Observe que o resultados são bem diferentes. Quando utilizamos a gravação batch update com um volume considerável de dados temos um ganho de desempenho.
Isto é apenas o início. Aproveite para ler os links relacionados abaixo e buscar mais informações sobre o assunto.
Então é isso. Por hoje é só e vida que segue.
The post Batch update: Como fazer atualização em lote em Java: appeared first on Aprenda Java.
]]>Instalação e Configuração do Banco de Dados MySQL Read More »
The post Instalação e Configuração do Banco de Dados MySQL appeared first on Aprenda Java.
]]>Hoje faremos a Instalação e Configuração do Banco de Dados MySQL. Esse é o banco de dados grátis mais utilizado no mundo. Muitas ferramentas de grande uso no mundo da internet utilizando ele como repositório padrão. Podemos listar aqui:
Vejam o vídeo abaixo:
Acesse nosso tutorial de JDBC: aqui
The post Instalação e Configuração do Banco de Dados MySQL appeared first on Aprenda Java.
]]>Instalação e Configuração do Banco de Dados PostGreSQL Read More »
The post Instalação e Configuração do Banco de Dados PostGreSQL appeared first on Aprenda Java.
]]>Olá Amigos,
Hoje faremos a Instalação Configuração Banco Dados PostGreSQL.
PostgreSQL é um SGBD (Sistema gerenciador de banco de dados) open source poderoso. Tem mais de 15 anos de desenvolvimento ativo e uma arquitetura comprovadamente forte e reputação de confiabilidade, integridade de dados e correção.
Sua instalação e configuração é bem simples.
Ele funciona em todos os principais sistemas operacionais, incluindo Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) e Windows. É totalmente compatível com ACID (Atomicidade, Consistência, Isolamento e Durabilidade), tem suporte completo para chaves estrangeiras, joins, views, triggers, e procedimentos armazenados (em vários idiomas). Ele inclui vários tipos de dados INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, e TIMESTAMP. Além disso também suporta o armazenamento de grandes objetos (LOB ou CLOB) binários, incluindo imagens, sons ou vídeo. Possui interfaces de programação nativas para C/C ++, Java,.Net, Perl, Python, Ruby, Tcl, ODBC, entre outros.
Há uma documentação excelente que pode ser acessada no site neste link:aqui . Existem 2 versões, uma original criada pela equipe do projeto e outra com comentários incluídos pelos usuários.
Veja o vídeo abaixo:
The post Instalação e Configuração do Banco de Dados PostGreSQL appeared first on Aprenda Java.
]]>Criar DataSource para MySQL no NetBeans Read More »
The post Criar DataSource para MySQL no NetBeans appeared first on Aprenda Java.
]]>Olá Amigos, hoje é dia da criar um DataSource no NetBeans. Assim a configuração de acesso a Banco de Dados, MySQL no exemplo, ficará fora da nossa aplicação.
Para começar vamos criar o Data Source que é um componente de acesso a banco de dados.
1. Acesse a Aba “Serviços”, conforme imagem abaixo. (Caso a aba não esteja sendo exibida digite (Ctrl + 5))
2. Clique com o botão direito do mouse e selecione “nova conexão”. Aparecerá a seguinte tela:
3. Selecione o driver do MySQL. No campo “Driver” ele informará o caminho onde está disponível o driver.
4. Selecione próximo.
5. Nesta tela você deve preencher os dados de conexão com o banco. Lembre-se de criar o banco de dados através da interface de gerenciamento do Banco de Dados (MySQL Workbench)
6. Agora selecione Testar Conexão. O resultado deve ser “Conexão Bem-Sucedida”
7. Selecione Próximo.
8. A tela acima informa que há um esquema padrão de banco de dados selecionado. Selecione próximo.
9. Escreva o nome que será utilizado para o nosso dataSource “AcademicNetDS”
10. Então Finalize a operação.
11. Teremos o item de datasource “AcademicNetDS” conforme imagem abaixo.
12. Pronto Data Source criado.
Abraços e bons estudos.
The post Criar DataSource para MySQL no NetBeans appeared first on Aprenda Java.
]]>JDBC: Conectar com Banco de Dados IBM DB2 Read More »
The post JDBC: Conectar com Banco de Dados IBM DB2 appeared first on Aprenda Java.
]]>Olá amigos!
Hoje iremos aprender como realizar uma conexão com o Banco de Dados IBM DB2.
package br.com.feltex.bancodados;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class ConexaoDB2 {
public static void main(String[] args) {
System.out.println("Inicio ConexaoDB2");
try {
String usuario = "usuario";
String senha = "senha";
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection conexao = DriverManager.getConnection(
"jdbc:db2://127.0.0.1:50000/bdacademicNet", usuario, senha);
PreparedStatement pstm = conexao
.prepareStatement("Select * from tbaluno");
ResultSet rs = pstm.executeQuery();
while (rs.next()) {
System.out.println("Nome Aluno: " + rs.getString("nome"));
}
rs.close();
pstm.close();
conexao.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Fim ConexaoDB2");
}
}
Driver JDBC IBM DB2
Abraços e bons estudos.
Exemplo completo com JSF Primefaces + Hibernate + MySQL
JDBC: Conectar com Banco de Dados SQLServer
JDBC: Conectar com Banco de Dados via ODBC
JDBC: Conectar com Banco de Dados PostgreSQL
JDBC: Conectar com Banco de Dados Microsoft Access
JDBC: Aprenda a conectar com Banco de Dados MySQL
The post JDBC: Conectar com Banco de Dados IBM DB2 appeared first on Aprenda Java.
]]>JDBC: Conectar com Banco de Dados via ODBC Read More »
The post JDBC: Conectar com Banco de Dados via ODBC appeared first on Aprenda Java.
]]>Olá amigos!
Hoje iremos aprender como realizar uma conexão com o Banco de Dados através de ODBC – Open Database Connectivity. Essa forma de conexão é muito simples, pois nossa aplicação não precisa ter: Driver de conexão com o Banco, o nome do banco, o usuário ou a senha. Isso tudo fica configurado no ODBC. Então Conectar com Banco de Dados via ODBC é como fazer utilização de um datasource externo à nossa aplicação.
Muito simples mesmo! Parece até magia, mas é TECNOLOGIA!
É importante deixar claro para você leitor que a partir da versão do Java 8. Não será mais possível utilizar este tipo de conexão. Então conectar com Banco de Dados via ODBC é uma possibilidade viável apenas nas versões até o java 7.
package br.com.feltex.bancodados;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class ConexaoODBC {
public static void main(String[] args) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection con = DriverManager.getConnection("jdbc:odbc:MeuODBC",
"", "");
DatabaseMetaData d = con.getMetaData();
ResultSet rs = d.getTables(null, null, "%", null);
while (rs.next()) {
System.out.println(rs.getString(3));
}
rs.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Abraços e bons estudos! E vida que segue!
Exemplo completo com JSF Primefaces + Hibernate + MySQL
JDBC: Conectar com Banco de Dados SQLServer
JDBC: Conectar com Banco de Dados via ODBC
JDBC: Conectar com Banco de Dados PostgreSQL
JDBC: Conectar com Banco de Dados Microsoft Access
JDBC: Aprenda a conectar com Banco de Dados MySQL
The post JDBC: Conectar com Banco de Dados via ODBC appeared first on Aprenda Java.
]]>JDBC: Conectar com Banco de Dados MS Access Read More »
The post JDBC: Conectar com Banco de Dados MS Access appeared first on Aprenda Java.
]]>Olá amigos! Hoje iremos aprender como realizar uma conexão com o Banco de Dados MS Access. Podemos utilizar arquivos com a extensões: mdb e accdb.
Atenção! Para você que está utilizando Java 8. A partir dessa versão o Java não dá mais suporte a ODBC nem acesso direto a arquivos do ACCESS diretamente.
Felizmente temos uma solução: JDBC Java 8
package br.com.feltex.bancodados;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class ConexaoMSAccess {
public static void main(String[] args) {
System.out.println("Inicio ConexaoMSAccess");
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String filename = "D:/Banco/BdArte.mdb";
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=";
database += filename.trim() + ";DriverID=22;READONLY=true}";
con = DriverManager.getConnection(database, "", "");
DatabaseMetaData d = con.getMetaData();
ResultSet rs = d.getTables(null, null, "%", null);
while (rs.next()) {
System.out.println(rs.getString(3));
}
rs.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Fim ConexaoMSAccess");
}
}
Abraços e bons estudos! E vida que segue!
Exemplo completo com JSF Primefaces + Hibernate + MySQL
JDBC: Conectar com Banco de Dados SQLServer
JDBC: Conectar com Banco de Dados via ODBC
JDBC: Conectar com Banco de Dados PostgreSQL
JDBC: Conectar com Banco de Dados Microsoft Access
JDBC: Aprenda a conectar com Banco de Dados MySQL
The post JDBC: Conectar com Banco de Dados MS Access appeared first on Aprenda Java.
]]>JDBC: Conectar com Banco de Dados SQLServer Read More »
The post JDBC: Conectar com Banco de Dados SQLServer appeared first on Aprenda Java.
]]>Olá amigos!
Hoje iremos aprender como realizar uma conexão com o Banco de Dados SQLServer.
package br.com.feltex.bancodados;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class ConexaoSQLServer {
public static void main(String[] args) {
System.out.println("Inicio ConexaoSQLServer");
try {
String usuario = "sa";
String senha = "teco01";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conexao = DriverManager
.getConnection(
"jdbc:sqlserver://localhost:1433;databaseName=bdacademicnet",
usuario, senha);
PreparedStatement pstm = conexao
.prepareStatement("Select name from sysobjects where type='u'");
ResultSet rs = pstm.executeQuery();
while (rs.next()) {
System.out.println("Nome tabela: " + rs.getString("name"));
}
rs.close();
pstm.close();
conexao.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Fim ConexaoSQLServer");
}
}
Abraços e bons estudos! E vida que segue!
Exemplo completo com JSF Primefaces + Hibernate + MySQL
JDBC: Conectar com Banco de Dados SQLServer
JDBC: Conectar com Banco de Dados via ODBC
JDBC: Conectar com Banco de Dados PostgreSQL
JDBC: Conectar com Banco de Dados Microsoft Access
JDBC: Aprenda a conectar com Banco de Dados MySQL
The post JDBC: Conectar com Banco de Dados SQLServer appeared first on Aprenda Java.
]]>Tutorial JDBC – Como fazer operações em banco de dados Java Read More »
The post Tutorial JDBC – Como fazer operações em banco de dados Java appeared first on Aprenda Java.
]]>
Este tutorial irá ajudar a realizarmos Operações com vários bancos de dados através da linguagem de programação Java.
Connectar com banco de dados PostGreSQL
PostgreSQL
Connectar com banco de dados MySQL
MySQL
Connectar com banco de dados SQLServer
SQL Server
Connectar com banco de dados MSAccess
MSAccess
Connectar com banco de dados Via ODBC
ODBC
Connectar com banco de dados IBM DB2
IBM DB2
Abraço e bons estudos.
The post Tutorial JDBC – Como fazer operações em banco de dados Java appeared first on Aprenda Java.
]]>