Предисловие
Хранильная процедура хранится в базе данных и снова вызывается после первой компиляции, и не нужно снова собираться. Пользователь выполняет его, указав имя хранимой процедуры и предоставив параметры (если хранящаяся процедура имеет параметры).
Java вызывает хранящие процедуры MySQL, которые требуют подключения JDBC и затмения окружающей среды
Сначала проверьте хранимые процедуры базы данных в MySQL, а затем напишите кодовые вызовы
mysql> show procedure status;+------+-------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+| ДБ | Имя | Тип | Определение | Модифицирован | Создано | Security_Type | Комментарий | Характер_SET_CLIENT | collation_connection | Сбор базы данных |+------+-------------+-----------+----------------+---------------------+-------------------------+-------------------------------------+--------------------------+--------------------------+----------------------------+| Книга | findallbook | Процедура | root@localhost | 2016-09-04 11:13:31 | 2016-09-04 11:13:31 | Определение | | GBK | GBK_CHINESE_CI | utf8_general_ci || Книга | Pro_test | Процедура | root@localhost | 2016-11-13 08:27:17 | 2016-11-13 08:27:17 | Определение | | GBK | GBK_CHINESE_CI | utf8_general_ci || Книга | Pro_user | Процедура | root@localhost | 2016-11-13 08:44:34 | 2016-11-13 08:44:34 | Определение | | GBK | GBK_CHINESE_CI | UTF8_GENERAL_CI |+------+-------------+-----------+----------------+-----------------------------+-------------------------+---------------+--------------+-------------------------------------------------+--------------------------------------------------------- FindallBook;+-------------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Процедура | SQL_MODE | Создать процедуру | Характер_SET_CLIENT | collation_connection | Собрание базы данных |+-------------+----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| findallbook | No_engine_substitution | Создать definer = `root`@` localhost` Процедура `findallBook` () Начните SELECT * FROM TB_Books; END | GBK | GBK_CHINESE_CI | UTF8_GENERAL_CI |+-------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
1. Структура каталогов проектов
2. Book.java
пакет com.scd.book; // название книги частная двойная цена; // цена частного BookCount; // Количество частной строки автор; // Автор публичной строки getName () {//system.out.println(name); вернуть имя; } public void setName (string name) {this.name = name; } public Double GetPrice () {return Price; } public void setPrice (двойная цена) {this.price = цена; } public int getBookCount () {return bookCount; } public void setBookCount (int bookCount) {this.bookCount = bookCount; } public String getAuthor () {return Author; } public void setAuthor (string Author) {//system.out.println(author); this.author = автор; }}3. FindBook.java
пакет com.scd.book; import java.sql.callablestatement; import java.sql.connection; импорт java.sql.drivermanager; import java.sql.resultset; импорт java.sql.sqlexception; импорт java.util.arraylist; import java.util.Liplik; @return Connection объект*/ public Connection getConnection () {connection conn = null; // Соединение базы данных try {class.forname ("com.mysql.jdbc.driver"); // Загрузите драйвер базы данных и зарегистрируйте его в адрес Manager/*Ссылка на базу данных*/string url = "jdbc: mysql: // localhost: 3306/book? Useunicode = true & incervicencoding = utf-8"; String username = "root"; String password = "123456"; /*Создать ссылку на соединение*/ conn = drivermanager.getConnection (URL, имя пользователя, пароль); } catch (classnotfoundexception e) {e.printstacktrace (); } catch (sqlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } return conn; // возвращать подключение к базе данных}/*** Данные запроса через хранимые процедуры* @return List <book>*/public <book> findall () {list <book> list = new ArrayList <book> (); // создание экземпляра списка объекта соединение conn = getConnection (); // Создание подключения к базе данных try {// вызов хранимой процедуры callableStatement cs = conn.preparecall ("{call findallbook ()}"); ResultSet rs = cs.executequery (); // выполнить операцию запроса и получить набор результатов while (rs.next ()) {book book = new book (); // создание книжного объекта Book.setName (rs.getString ("name")); // присвоение имени атрибут book.setprice (rs.getDouble ("цена")); // назначить атрибут цены. // назначить атрибут BookCount Book.setAuthor (rs.getString ("Автор")); // назначить атрибут автора. }} catch (Exception e) {e.printstackTrace (); } return List; // return list}/** * Основная функция вызывает сохраненную процедуру (проверка) * @param args */public static void main (string [] args) {findbook fb = new Findbook (); //System.out.println (fb.findall ()); для (книга книги: fb.findall ()) {System.out.print (book.getName () + "-" + book.getPrice () + "-"); System.out.print (book.getBookCount () + "-" + book.getAuthor ()); System.out.println (); }}}4. Щелкните правой кнопкой мыши запустить как-> Java Application, вывод консоли
5. Выполнить операторы SQL в сохраненных процедурах
mysql> select * из tb_books;+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. 67,42 | 775 | Mr.Cheng |+------------------+-------+-----------+----------+Rows в наборе (0,00 с)
Суммировать
Выше всего содержит все содержание Java, называемое хранимыми процедурами MySQL. Я надеюсь, что содержание этой статьи поможет для каждого обучения или работы каждого. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения.