Ol\u00e1 amigos hoje a dica \u00e9 Stored Procedure. Muitos sistemas possuem suas regras de neg\u00f3cio centralizadas no banco de dados e as Stored Procedure s\u00e3o os objetos que realizam as opera\u00e7\u00f5es de Inclus\u00e3o, altera\u00e7\u00e3o, exclus\u00e3o e at\u00e9 mesmo consulta no Banco de dados.
\n Por este motivo \u00e9 importante sabermos trabalhar com esses objetos em Java. <\/p>\n
<\/p>\n
<\/p>\n
Aprenda como acessar o banco de dados MySQL aqui<\/a>. <\/p>\n Veja o script de cria\u00e7\u00e3o da tabela.<\/p>\n Agora vejamos o script para gera\u00e7\u00e3o de massa de dados:<\/p>\n Criaremos uma procedure que nos retorna o total de alunos existentes em nossa tabela de alunos.<\/p>\n Abaixo temos o c\u00f3digo Java que executa a procedure e exibe o retorno.<\/p>\n Por hoje \u00e9 s\u00f3 meus amigos e Vida que segue!<\/p>\n Instala\u00e7\u00e3o e Configura\u00e7\u00e3o do Banco de Dados MySQL<\/a><\/p>\n Stored procedure MySQL<\/a><\/p>\n1. Estrutura de dados<\/H2><\/p>\n
\r\nCREATE TABLE tbaluno (\r\nmatricula INT NOT NULL ,\r\nnome VARCHAR(45) NULL ,\r\ntelefone VARCHAR(45) NULL ,\r\nemail VARCHAR(45) NULL ,\r\ndatacadastro DATETIME NULL,\r\nPRIMARY KEY (matricula));\r\n<\/pre>\n
\r\ninsert into tbaluno (matricula, nome, telefone, email, datacadastro) \r\nvalues (1, 'maria da silva','5555-9887','maria.silva@feltex.com.br', '2020-10-10');\r\n\r\ninsert into tbaluno (matricula, nome, telefone, email, datacadastro) \r\nvalues (2, 'Jose da silva','2223-3222','jose.silva@feltex.com.br', '2020-10-10');\r\n\r\ninsert into tbaluno (matricula, nome, telefone, email, datacadastro) \r\nvalues (3, 'Bruna silva','4412-2234','bruna.silva@feltex.com.br', '2020-10-10');\r\n<\/pre>\n
2. Cria\u00e7\u00e3o da stored procedure<\/H2><\/p>\n
\r\n\r\nDELIMITER $$\r\nCREATE PROCEDURE Total_Alunos(OUT total INT)\r\nBEGIN\r\n\tSELECT COUNT(matricula) INTO total FROM tbAluno;\t\r\nEND $$\r\n\r\n<\/pre>\n
3. Chamada Java<\/H2><\/p>\n
\r\npackage br.com.feltex.jdbc.avancado;\r\n\r\nimport java.sql.CallableStatement;\r\nimport java.sql.Connection;\r\nimport java.sql.DriverManager;\r\n\r\npublic class ChamaProcedure {\r\n\r\n\tpublic static Connection getConexao() {\r\n\t\tConnection conexao = null;\r\n\t\tString usuario = \"root\";\r\n\t\tString senha = \"teco01\";\r\n\t\tString nomeBancoDados = \"bdacademicnet\";\r\n\r\n\t\ttry {\r\n\t\t\tconexao = DriverManager.getConnection(\r\n\t\t\t\t\t\"jdbc:mysql:\/\/localhost:3306\/\" + nomeBancoDados, usuario,\r\n\t\t\t\t\tsenha);\r\n\t\t} catch (Exception e) {\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t\treturn conexao;\r\n\t}\r\n\r\n\tpublic static void main(String[] args) {\r\n\r\n\t\tCallableStatement callableStatement = null;\r\n\t\tConnection con = null;\r\n\r\n\t\ttry {\r\n\t\t\t\/\/ Realiza a conex\u00e3o com o banco de dados\r\n\t\t\tcon = getConexao();\r\n\t\t\t\r\n\t\t\t\/\/Prepara a chamada para a procedure. Observe que h\u00e1 \"?\"\r\n\t\t\t\/\/ Que neste caso \u00e9 o par\u00e2metro de sa\u00edda.\r\n\t\t\tcallableStatement = con.prepareCall(\"{CALL Total_Alunos(?)}\");\r\n\t\t\t\r\n\t\t\t\/\/Informa o tipo de retorno\r\n\t\t\tcallableStatement.registerOutParameter(1, java.sql.Types.INTEGER);\r\n\t\t\t\t\t\t\r\n\t\t\t\/\/ Executa a Stored procedure\r\n\t\t\tcallableStatement.execute();\r\n\t\t\t\r\n\t\t\t\/\/ Faz a leitura do retorno\r\n\t\t\tInteger totalAlunos = callableStatement.getInt(1);\r\n\t\t\t\r\n\t\t\tSystem.out.println(\"Total alunos: \" + totalAlunos);\r\n\r\n\t\t} catch (Exception e) {\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t}\r\n}\r\n<\/pre>\n
\n
Links relacionados<\/h3>\n