Warning: Trying to access array offset on value of type bool in /home/feltexco/public_html/felix/wp-content/plugins/google-maps-ready/modules/options/models/options.php on line 16

Warning: Trying to access array offset on value of type bool in /home/feltexco/public_html/felix/wp-content/plugins/google-maps-ready/modules/options/models/options.php on line 16

Warning: Trying to access array offset on value of type bool in /home/feltexco/public_html/felix/wp-content/plugins/google-maps-ready/modules/options/models/options.php on line 16

Warning: Cannot modify header information - headers already sent by (output started at /home/feltexco/public_html/felix/wp-content/plugins/google-maps-ready/modules/options/models/options.php:16) in /home/feltexco/public_html/felix/wp-includes/feed-rss2.php on line 8
MySQL – Aprenda Java https://www.feltex.com.br/felix Cursos de java, SQL e Engenharia de Software Mon, 26 Jan 2015 02:03:13 +0000 pt-BR hourly 1 https://wordpress.org/?v=6.1.6 Dica Rápida: Chamando Stored Procedure em Java https://www.feltex.com.br/felix/chamando-stored-procedure/ https://www.feltex.com.br/felix/chamando-stored-procedure/#respond Thu, 20 Nov 2014 15:34:27 +0000 http://www.feltex.com.br/felix/?p=1628 Dica Rápida: Chamando Stored Procedure em 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, …

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.

]]>

Dica Rápida: Chamando Stored Procedure em 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.

Stored Procedure2

Aprenda como acessar o banco de dados MySQL aqui.

1. Estrutura de dados

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');

2. Criação da stored procedure

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 $$

3. Chamada Java

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

Stored procedure MySQL

Chamando uma Stored Procedure

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.

]]> https://www.feltex.com.br/felix/chamando-stored-procedure/feed/ 0 Batch update: Como fazer atualização em lote em Java: https://www.feltex.com.br/felix/fazer-batch-update-java/ https://www.feltex.com.br/felix/fazer-batch-update-java/#respond Fri, 17 Oct 2014 11:28:44 +0000 http://www.feltex.com.br/felix/?p=1478 Como fazer atualização em lote em Java: batch update 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á …

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.

]]>

Como fazer atualização em lote em Java: batch update

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.
Batch update

1. Criando a tabela do banco de dados


Segue o script para a 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 );

Atenção: não foi criada a chave primária para evitar conflito na geração das chaves pelo programa!

2. Construção da classe de modelo

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 + "]";
	}

}

3. A classe que realiza as operações

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:


4. Conclusão

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.

Links relacionados

Não se esqueça de curtir este post nas redes sociais. Dê a sua contribuição social e ajude o autor:

The post Batch update: Como fazer atualização em lote em Java: appeared first on Aprenda Java.

]]>
https://www.feltex.com.br/felix/fazer-batch-update-java/feed/ 0
Instalação e Configuração do Banco de Dados MySQL https://www.feltex.com.br/felix/instalacao-e-configuracao-do-banco-de-dados-mysql/ https://www.feltex.com.br/felix/instalacao-e-configuracao-do-banco-de-dados-mysql/#respond Tue, 03 Jun 2014 05:34:26 +0000 http://www.feltex.com.br/felix/?p=845 Instalação e Configuração do Banco de Dados MySQL Olá Amigos, 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 …

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.

]]>

Instalação e Configuração do Banco de Dados MySQL


Olá Amigos,

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:

  1. Word Press – Gerenciados de Blogs
  2. Majento – Ecommerce
  3. Moodle – Ambientes virtual de aprendizagem
  4. PHPAdmin – Ferramenta de administração de site

Vejam o vídeo abaixo:

Links relacionados

Acesse nosso tutorial de JDBC: aqui

Gostou do post? Agradeça o autor compartilhando nas redes sociais. Clique nos links abaixo:

The post Instalação e Configuração do Banco de Dados MySQL appeared first on Aprenda Java.

]]>
https://www.feltex.com.br/felix/instalacao-e-configuracao-do-banco-de-dados-mysql/feed/ 0
Criar DataSource para MySQL no NetBeans https://www.feltex.com.br/felix/criar-datasource-mysql-netbeans/ https://www.feltex.com.br/felix/criar-datasource-mysql-netbeans/#respond Mon, 28 Apr 2014 15:11:29 +0000 http://www.feltex.com.br/felix/?p=595 Criar DataSource para MySQL no NetBeans 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. Criar DataSource MySQL NetBeans Para começar …

Criar DataSource para MySQL no NetBeans Read More »

The post Criar DataSource para MySQL no NetBeans appeared first on Aprenda Java.

]]>

Criar DataSource para MySQL no NetBeans

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.

Criar DataSource MySQL NetBeans

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))

Criar DataSource MySQL no NetBeans01

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.

Criar DataSource MySQL no NetBeans02

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)

Criar DataSource MySQL no NetBeans03

6. Agora selecione Testar Conexão. O resultado deve ser “Conexão Bem-Sucedida”
7. Selecione Próximo.

Criar DataSource MySQL no NetBeans04

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”

Criar DataSource MySQL no NetBeans05

10. Então Finalize a operação.
11. Teremos o item de datasource “AcademicNetDS” conforme imagem abaixo.

Criar DataSource MySQL no NetBeans06

12. Pronto Data Source criado.

Abraços e bons estudos.

Links relacionados
Aplicação de Exemplo NetBeans
Criando um primeiro Projeto Enterprise no Netbeans
Tutorial sobre DataSource

The post Criar DataSource para MySQL no NetBeans appeared first on Aprenda Java.

]]> https://www.feltex.com.br/felix/criar-datasource-mysql-netbeans/feed/ 0 JDBC: Conectar com Banco de Dados PostgreSQL https://www.feltex.com.br/felix/jdbc-conectar-banco-dados-postgresql/ https://www.feltex.com.br/felix/jdbc-conectar-banco-dados-postgresql/#respond Thu, 13 Mar 2014 14:56:24 +0000 http://www.feltex.com.br/felix/?p=413 JDBC: Conectar com Banco de Dados PostgreSQL Olá amigos! Hoje iremos aprender como realizar uma conexão com banco de Dados PostgreSQL. Neste exemplo mostraremos como exibir o dicionário de dados, que é a lista de objetos de banco para o …

JDBC: Conectar com Banco de Dados PostgreSQL Read More »

The post JDBC: Conectar com Banco de Dados PostgreSQL appeared first on Aprenda Java.

]]>

JDBC: Conectar com Banco de Dados PostgreSQL

Olá amigos!
Hoje iremos aprender como realizar uma conexão com banco de Dados PostgreSQL.
Neste exemplo mostraremos como exibir o dicionário de dados, que é a lista de objetos de banco para o PostreSQL. Listaremos as tabelas.

package br.com.feltex.bancodados;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class ConexaoPostgreSQL {

public static void main(String[] args) {
	System.out.println("Inicio PostgreSQLMySQL");
	try {
		Connection conexao = DriverManager.getConnection(
				"jdbc:postgresql://localhost:5432/BDAcademicNet",
				"postgres", "teco01");
		PreparedStatement pstm = conexao
				.prepareStatement("SELECT tablename FROM pg_tables order by tablename");

		ResultSet rs = pstm.executeQuery();
		while (rs.next()) {
			System.out.println("Nome tabela: " + rs.getString("tablename"));				
		}
		rs.close();
		pstm.close();
		conexao.close();

		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("Fim PostgreSQLMySQL");
	}
}

Abraços e bons estudos! E vida que segue!

Links relacionados

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

Driver PostgreSQL

Não se esqueça de curtir este post nas redes sociais. Dê a sua contribuição social e ajude o autor:

The post JDBC: Conectar com Banco de Dados PostgreSQL appeared first on Aprenda Java.

]]>
https://www.feltex.com.br/felix/jdbc-conectar-banco-dados-postgresql/feed/ 0
JDBC MySQL: Aprenda a conectar com Banco de Dados mais usado na internet https://www.feltex.com.br/felix/jdbc-conectar-banco-dados-mysql/ https://www.feltex.com.br/felix/jdbc-conectar-banco-dados-mysql/#respond Thu, 13 Mar 2014 02:57:00 +0000 http://www.feltex.com.br/felix/?p=406 JDBC: Conectar com Banco de Dados MySQL Olá amigos! Hoje iremos aprender como realizar uma conexão com o Banco de Dados MySQL. package br.com.feltex.bancodados; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class ConexaoMySQL { //** public static void …

JDBC MySQL: Aprenda a conectar com Banco de Dados mais usado na internet Read More »

The post JDBC MySQL: Aprenda a conectar com Banco de Dados mais usado na internet appeared first on Aprenda Java.

]]>

JDBC: Conectar com Banco de Dados MySQL

Olá amigos! Hoje iremos aprender como realizar uma conexão com o Banco de Dados MySQL.

JDBC: Aprenda a conectar com Banco de Dados MySQL

package br.com.feltex.bancodados;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class ConexaoMySQL {

//**

public static void main(String[] args) {
	System.out.println("Inicio ConexaoMySQL");
	try {

                Class.forName("com.mysql.jdbc.Driver");
		Connection conexao = DriverManager.getConnection(
				"jdbc:mysql://localhost:3306/bdacademicnet", "root",
				"teco01");
		PreparedStatement pstm = conexao
				.prepareStatement("select * from information_schema.tables");

		ResultSet rs = pstm.executeQuery();

		while (rs.next()) {
		  System.out.println("Nome tabela: " + rs.getString("table_name"));
		}
		rs.close();
		pstm.close();
		conexao.close();

		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("Fim ConexaoMySQL");
	}
}

Links relacionados


Tutorial de JDBC

Driver do MySQL

The post JDBC MySQL: Aprenda a conectar com Banco de Dados mais usado na internet appeared first on Aprenda Java.

]]>
https://www.feltex.com.br/felix/jdbc-conectar-banco-dados-mysql/feed/ 0