Prefacio
El procedimiento almacenado se almacena en la base de datos y se llama nuevamente después de la primera compilación, y no necesita ser compilada nuevamente. El usuario lo ejecuta especificando el nombre del procedimiento almacenado y dando parámetros (si el procedimiento almacenado tiene parámetros).
Java llama a los procedimientos almacenados de MySQL, que requieren la conexión JDBC y el eclipse del entorno
Primero, verifique los procedimientos almacenados de la base de datos en MySQL y luego escriba llamadas de código
MySQL> Mostrar el estado del procedimiento;+------+-------------+-----------+--------------------+----------------------+---------------------+---------------+---------+----------------------+----------------------+------------------+| DB | Nombre | Tipo | Definidor | Modificado | Creado | Security_Type | Comentario | caracteres_set_client | colatación_connection | COLACIÓN DE LA CASA DE DATOS |+------+-------------+-----------+--------------------+---------------------+----------------------+---------------+---------+------------------+----------------------+--------------------+| libro | FindAllbook | Procedimiento | root@localhost | 2016-09-04 11:13:31 | 2016-09-04 11:13:31 | Definidor | | GBK | gbk_chinese_ci | UTF8_GENERAL_CI || libro | PRO_TEST | Procedimiento | root@localhost | 2016-11-13 08:27:17 | 2016-11-13 08:27:17 | Definidor | | GBK | gbk_chinese_ci | UTF8_GENERAL_CI || libro | Pro_user | Procedimiento | root@localhost | 2016-11-13 08:44:34 | 2016-11-13 08:44:34 | Definidor | | GBK | gbk_chinese_ci | utf8_general_ci |+------+-------------+-----------+--------------------+--------------------------+---------------------+-------------------+---------+----------------------+----------------------+------------------+ROWS en SET (0.01 Sec) Mysql> Mostrar procedimiento findallbook;+-------------+------------------------+---------------------------------------------------------------------------------------------------+--------------------------+----------------------+--------------------+| Procedimiento | SQL_MODE | Crear procedimiento | caracteres_set_client | colatación_connection | COLACIÓN DE LA CASA DE DATOS |+-------------+----------------------------+-----------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+| FindAllbook | NO_Engine_Substitution | Crear definiter = `root`@` localhost` procedimiento `findallbook` () Comenzar select * de tb_books; final | GBK | gbk_chinese_ci | utf8_general_ci |+-------------+----------------------------+---------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+Row In Set (0.00 seg)
1. Estructura del directorio de proyectos
2. Libro.java
paquete com.scd.book; libro de clase pública {nombre de cadena privada; // Nombre del libro Precio Precio Doble; // precio privado int bookCount; // Cantidad autor de cadena privada; // Autor public String getName () {//system.out.println(name); nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public Double GetPrice () {Return Price; } public void setPrice (doble precio) {this.price = precio; } public int getBookCount () {return BookCount; } public void setbookCount (int bookCount) {this.bookCount = bookCount; } public String getAuthor () {return autor; } public void setAuthor (autor de cadena) {//system.out.println(author); this.author = autor; }}3. Findbook.java
paquete com.scd.book; import java.sql.callableStatement; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.util.Araylist; import java.util.list; pública Classely; Conexión* @return objeto de conexión*/ conexión public getConnection () {Connection conn = null; // Conexión de la base de datos Try {class.forname ("com.mysql.jdbc.driver"); // Cargue el controlador de la base de datos y registelo en el administrador del controlador/*Dirección del enlace de la base de datos*/String url = "jdbc: mysql: // localhost: 3306/book? UseUnicode = true & caracterSencoding = utf-8"; String UserName = "Root"; String Password = "123456"; /*Crear enlace de conexión*/ conn = drivermanager.getConnection (url, nombre de usuario, contraseña); } catch (ClassNotFoundException e) {E.PrintStackTrace (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); } return Conn; // Return Database Connection}/*** Datos de consulta a través de procedimientos almacenados* @return list <Book>*/public List <Book> findall () {list <Book> list = new ArrayList <Book> (); // Instanciar la conexión de objeto de lista conn = getConnection (); // Crear conexión de base de datos Prueba {// llamando al procedimiento almacenado CallableStatement cs = conn.prepareCall ("{call findallbook ()}"); ResultSet rs = cs.ExecuteQuery (); // ejecutar la operación de consulta y obtener el resultado establecido mientras (rs.next ()) {book book = new Book (); // Instanciar el libro Book Book.SetName (rs.getString ("nombre")); // Asignar el nombre de atributo Book.setPrice (rs.getDouble ("precio")); // asignar el atributo de precio book.setBookCount (rs.getInt ("bookCount")); // Asignar el atributo BookCount book.setAuthor (rs.getString ("autor")); // Asignar la lista de atributos del autor.add (libro); }} catch (Exception e) {E.PrintStackTrace (); } Lista de retorno; // Lista de retorno}/** * Llamadas de la función principal Procedimiento almacenado (probado) * @param args */public static void main (string [] args) {findbook fb = new Findbook (); //System.out.println (fb.findall ()); para (libro de libros: fb.findall ()) {system.out.print (book.getName () + "-" + book.getPrice () + "-"); System.out.print (book.getBookCount () + "-" + book.getAuthor ()); System.out.println (); }}}4. Haga clic con el botón derecho como-> Aplicación Java, salida de consola
5. Ejecutar declaraciones SQL en procedimientos almacenados
mysql> select * de tb_books;+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------- |+------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- 67.42 | 775 | Mr.Cheng |+------------------+-------+-----------+----------+filas en el set (0.00 segundos)
Resumir
Lo anterior es todo el contenido de Java que llama a los procedimientos almacenados MySQL. Espero que el contenido de este artículo sea de ayuda para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse.