Prefácio
O procedimento armazenado é armazenado no banco de dados e é chamado novamente após a primeira compilação e não precisa ser compilado novamente. O usuário o executa especificando o nome do procedimento armazenado e fornecendo parâmetros (se o procedimento armazenado tiver parâmetros).
Java liga para os procedimentos armazenados do MySQL, que requerem conexão JDBC e eclipse de ambiente
Primeiro, verifique os procedimentos armazenados do banco de dados no MySQL e depois escreva chamadas de código
MySQL> Mostrar status do procedimento;+------+-------------+-------------+----------------+--------------------------------------------------------------------------------------------------------------+----------------------+----------------+| Db | Nome | Tipo | Definidor | Modificado | Criado | Security_type | Comentário | caractere_set_client | COLATION_CONNECTION | Agrupamento de banco de dados |+------+-------------+-----------+------------------+-----------------------------------------------------------------------------+---------+--------------------+--------------------------+--------------------+| livro | FindAllBook | Procedimento | root@localhost | 2016-09-04 11:13:31 | 2016-09-04 11:13:31 | Definidor | | GBK | gbk_chinese_ci | utf8_general_ci || livro | pro_test | Procedimento | root@localhost | 2016-11-13 08:27:17 | 2016-11-13 08:27:17 | Definidor | | GBK | gbk_chinese_ci | utf8_general_ci || livro | pro_user | Procedimento | root@localhost | 2016-11-13 08:44:34 | 2016-11-13 08:44:34 | Definidor | | GBK | gbk_chinese_ci | UTF8_GENERAL_CI |+------+-------------+-----------+----------------+----------------------------------------------------------------------------------------------------------------+----------------------+--------- FindAllbook;+-------------+----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Procedimento | sql_mode | Criar procedimento | caractere_set_client | COLATION_CONNECTION | Agrupamento de banco de dados |+--------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+| FindAllBook | No_engine_substitution | Criar definidor = `root`@` localhost` procedimento `findallbook` () BEGIN SELECT * de tb_books; end | GBK | gbk_chinese_ci | UTF8_GENERAL_CI |+-----------+--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+Linha (0,00 segund)
1. Estrutura do diretório do projeto
2. Book.Java
pacote com.scd.book; public class Book {private String Name; // Nome do livro Preço duplo privado; // preço privado int bookcount; // Quantity Private String Author; // autor public string getName () {//system.out.println(name); Nome de retorno; } public void setName (nome da string) {this.name = name; } public Double getPrice () {Return Price; } public void setPrice (preço duplo) {this.price = price; } public int getBookCount () {return BookCount; } public void SetBookCount (int bookCount) {this.BookCount = BookCount; } public string getAuthor () {return autor; } public void setauthor (string autor) {//system.out.println(author); this.author = autor; }}3. FindBook.java
pacote com.scd.book; importar java.sql.callablestatement; importar java.sql.connection; importar java.sql.driverManager; importar java.sql.ResultSet; importar java.sql.sqlexception; import.util.util.ArrayList; conexão* @return conexão objeto*/ conexão pública getConnection () {conexão conn = null; // conexão com o banco de dados Try {Class.ForName ("com.mysql.jdbc.driver"); // carrega o driver do banco de dados e registre-o no gerenciador de driver/*Endereço do link do banco de dados*/string url = "jdbc: mysql: // localhost: 3306/book? Useunicode = true & caracterEncoding = utf-8"; String userName = "root"; String senha = "123456"; /*Criar link de conexão*/ conn = driverManager.getConnection (URL, nome de usuário, senha); } catch (classNotFoundException e) {e.printStackTrace (); } catch (sqLexception e) {// TODO BLOCO DE CAPAGEM AUTOMENTADO E.PRINTSTACKTRACE (); } retornar Conn; // Return Database Connection}/*** Dados de consulta através de procedimentos armazenados* @return List <Book>*/public List <Book> findall () {list <Book> list = new ArrayList <Book> (); // Instancia a conexão do objeto de lista instanciada Conn = getConnection (); // Crie conexão com o banco de dados Try {// Chamando procedimento armazenado callablestatement cs = Conn.Preparecall ("{Call findAllbook ()}"); ResultSet rs = cs.executeQuery (); // Execute a operação de consulta e obtenha o conjunto de resultados enquanto (rs.Next ()) {livro de livros = novo livro (); // instanciar o livro do livro Book.setName (rs.getString ("nome")); // atribui o nome do atributo book.setPrice (rs.getDouble ("Price")); // atribui o preço do atributo de preço. // Atribua o livro de atributos do bookCount. // Atribuir a lista de atributos do autor.add (livro); }} catch (Exceção e) {e.printStackTrace (); } Lista de retorno; // Lista de retorno}/** * PRINCIPAIS CHAMADAS DE FUNÇÕES PROCEDIMENTOS SONTEZADOS (TESTADOS) * @param args */public static void main (string [] args) {findbook fb = new FindBook (); //System.out.println (fb.findall ()); para (livro do livro: fb.findall ()) {System.out.print (book.getName () + "-" + book.getprice () + "-"); System.out.print (book.getbookCount () + "-" + book.getauthor ()); System.out.println (); }}}4. Clique com o botão direito do mouse em execução como-> Aplicativo Java, saída do console
5. Executar declarações SQL em procedimentos armazenados
mysql> selecione * de tb_books;+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 67.42 | 775 | Mr.Cheng |+------------------+-------+-----------+----------+linhas no conjunto (0,00 s)
Resumir
O exposto acima é o conteúdo inteiro do Java chamando procedimentos armazenados do MySQL. Espero que o conteúdo deste artigo seja de ajuda para estudar ou trabalhar de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar.