머리말
저장 프로 시저는 데이터베이스에 저장되며 첫 번째 컴파일 후 다시 호출되며 다시 컴파일 할 필요가 없습니다. 사용자는 저장 프로 시저의 이름을 지정하고 매개 변수를 제공하여이를 실행합니다 (저장 프로 시저에 매개 변수가있는 경우).
Java는 MySQL 저장 프로 시저를 호출하며 JDBC 연결 및 환경 이클립스가 필요합니다.
먼저 MySQL에서 데이터베이스의 저장된 절차를 확인한 다음 코드 호출을 작성하십시오.
mysql> show procedure status;+------+-------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+| DB | 이름 | 유형 | 정의 | 수정 | 생성 | Security_Type | 댓글 | 문자 _set_client | Collation_Connection | 데이터베이스 Collation |+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------OOIOOIOOOOOUOUY 보작 .보으로는 +---------------------OOOIOOOOOUOOIOOY 일작 때문에함보로+---------------- 책 | FindAllbook | 절차 | 루트@localhost | 2016-09-04 11:13:31 | 2016-09-04 11:13:31 | 정의 | | GBK | gbk_chinese_ci | UTF8_GENERAL_CI || 책 | pro_test | 절차 | 루트@localhost | 2016-11-13 08:27:17 | 2016-11-13 08:27:17 | 정의 | | GBK | gbk_chinese_ci | UTF8_GENERAL_CI || 책 | pro_user | 절차 | 루트@localhost | 2016-11-13 08:44:34 | 2016-11-13 08:44:34 | 정의 | | GBK | gbk_chinese_ci | utf8_general_ci |+------+-------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+rows in set (0.01 sec)mysql> show create procedure findAllBook;+-------------+------------------------+---------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+| 절차 | sql_mode | 프로 시저 생성 | 문자 _set_client | Collation_Connection | Database Collation |+-------------+------------------------+---------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+| FindAllbook | no_engine_substitution | 정의기를 create 정의 =`root`@`localhost` 절차`findallbook '() tb_books에서 선택 * 시작 *; GBK | gbk_chinese_ci | utf8_general_ci |+-------------+------------------------+---------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+row in set (0.00 sec)
1. 프로젝트 디렉토리 구조
2. BOOK.JAVA
package com.scd.book; public class book {개인 문자열 이름; // 책 이름 개인 이중 가격; // Price Price Private int BookCount; // 수량 개인 문자열 저자; // 저자 public String getName () {//system.out.println(name); 반환 이름; } public void setName (문자열 이름) {this.name = 이름; } public double getPrice () {반환 가격; } public void setPrice (이중 가격) {this.price = 가격; } public int getBookCount () {return bookCount; } public void setBookCount (int bookcount) {this.bookCount = BookCount; } public String getAuthor () {return awork. } public void setAuthor (문자열 author) {//system.out.println(author); this.author = 저자; }}3. findbook.java
패키지 com.scd.book; import java.sql.callestatement; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; problate { /* {provalse { /* get java.util.list; Connection* @return Connection 객체*/ public Connection getConnection () {Connection Conn = NULL; // 데이터베이스 연결 try {class.forname ( "com.mysql.jdbc.driver"); // 데이터베이스 드라이버를로드하여 드라이버 관리자에게 등록하십시오/*데이터베이스 링크 주소*/String URL = "JDBC : MySQL : // localHost : 3306/BOOK? USEUNICODE = TRUE & CATICIONENCODING = UTF-8"; 문자열 사용자 이름 = "루트"; 문자열 암호 = "123456"; /*연결 링크 작성*/ conn = driverManager.GetConnection (url, username, password); } catch (classNotFoundException e) {e.printstacktrace (); } catch (sqlexception e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); } return conn; // 데이터베이스 연결을 반환}/*** 저장 절차를 통한 쿼리 데이터* @return list <book>*/public list <book> findall () {list <book> list = new ArrayList <Book> (); // 인스턴트 목록 객체 연결 conn = getConnection (); // 데이터베이스 연결 작성 {// 저장된 프로 시저 호출 CALLABESTATEMENT CS = CONN.PREPARECALL ( "{Call FindAllBook ()}"); resultSet rs = cs.ExecuteQuery (); // 쿼리 작업을 실행하고 결과 세트를 가져옵니다. // 책 객체 BOOK.SETNAME (rs.getString ( "name"))을 인스턴스화합니다. // 이름 Attribute Book.setPrice (rs.getDouble ( "price"))을 할당; // 가격 속성을 할당 책. // BookCount 속성을 할당하십시오. Book.setAuthor (rs.getString ( "author")); // 저자 속성 list.add (book)를 할당; }} catch (예외 e) {e.printstacktrace (); } 반환 목록; // return list}/** * 주요 함수 저장 프로 시저 (테스트) * @param args */public static void main (String [] args) {findbook fb = new findbook (); //system.out.println (fb.findall ()); for (book book : fb.findall ()) {system.out.print (book.getName () + "-" + book.getPrice () + "-"); System.out.print (book.getBookCount () + "-" + book.getAuthor ()); System.out.println (); }}}4. 실행을 마우스 오른쪽 버튼으로 클릭하여-> Java 응용 프로그램, 콘솔 출력
5. 저장된 절차에서 SQL 문을 실행하십시오
mysql> 선택 *에서 tb_books;+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 67.42 | 775 | Mr.Cheng |+------------------+-------+-----------+----------+rows in set (0.00 sec)
요약
위는 MySQL 저장 절차를 호출하는 Java의 전체 내용입니다. 이 기사의 내용이 모든 사람의 연구 나 업무에 도움이되기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다.