자바 호출 MySQL 저장 프로 세 스 상세 설명 실현

머리말
저장 프로 세 스(Stored Procedure)는 데이터베이스 에 저 장 된 첫 번 째 컴 파일 을 거 친 후에 다시 호출 하 는 것 입 니 다.다시 컴 파일 할 필요 가 없습니다.사용 자 는 저장 프로 세 스 의 이름 을 지정 하고 파 라 메 터 를 제공 합 니 다(이 저장 프로 세 스 가 파 라 메 터 를 가지 고 있다 면).
자바 가 MySQL 의 저장 프로 세 스 를 호출 하려 면 JDBC 로 연결 해 야 합 니 다.환경 eclipse
먼저 MySQL 의 데이터베이스 저장 과정 을 보고 코드 호출 을 작성 합 니 다.

mysql> show procedure status;
+------+-------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db | Name  | Type  | Definer  | Modified   | Created    | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+------+-------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| book | findAllBook | PROCEDURE | root@localhost | 2016-09-04 11:13:31 | 2016-09-04 11:13:31 | DEFINER  |   | gbk     | gbk_chinese_ci  | utf8_general_ci |
| book | pro_test | PROCEDURE | root@localhost | 2016-11-13 08:27:17 | 2016-11-13 08:27:17 | DEFINER  |   | gbk     | gbk_chinese_ci  | utf8_general_ci |
| book | pro_user | PROCEDURE | root@localhost | 2016-11-13 08:44:34 | 2016-11-13 08:44:34 | DEFINER  |   | gbk     | gbk_chinese_ci  | utf8_general_ci |
+------+-------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
rows in set (0.01 sec)

mysql> show create procedure findAllBook;
+-------------+------------------------+---------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| Procedure | sql_mode    | Create Procedure                     | character_set_client | collation_connection | Database Collation |
+-------------+------------------------+---------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| findAllBook | NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`localhost` PROCEDURE `findAllBook`()
begin
 select * from tb_books;
end | gbk     | gbk_chinese_ci  | utf8_general_ci |
+-------------+------------------------+---------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
row in set (0.00 sec)
1.프로젝트 디 렉 터 리 구조

Book.java

package com.scd.book;

public class Book {
 private String name; //    
 private double price; //  
 private int bookCount; //  
 private String author; //  

 public String getName()
 {
  //System.out.println(name);
  return name;
 }
 public void setName(String name)
 {
  this.name = name;
 }
 public double getPrice()
 {
  return price;
  
 }
 public void setPrice(double price)
 {
  this.price = 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 = author;
 }

}
FindBook.java

package 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.ArrayList;
import java.util.List;

public class FindBook {
 /**
  *        
  * @return Connection  
  */
 public Connection getConnection()
 {
  Connection conn = null; //     
  try
  {
   Class.forName("com.mysql.jdbc.Driver"); //       ,        
   /*       */
   String url = "jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=UTF-8";
   String username = "root";
   String password = "123456";
   /*  Connection  */
   conn = DriverManager.getConnection(url, username, password); 
   
  }
  catch (ClassNotFoundException e){
   
   e.printStackTrace();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return conn; //       
  
 }
 /**
  *           
  * @return List<Book>
  */
 public List<Book> findAll() 
 {
  List <Book> list = new ArrayList<Book>(); //   List  
  Connection conn = getConnection(); //       
  try
  {
   //      
   CallableStatement cs = conn.prepareCall("{call findAllBook()}");
   ResultSet rs = cs.executeQuery(); //      ,      
   while(rs.next())
   {
    Book book = new Book(); //   Book  
    book.setName(rs.getString("name")); // name    
    book.setPrice(rs.getDouble("price")); // price    
    book.setBookCount(rs.getInt("bookCount")); // bookCount    
    book.setAuthor(rs.getString("author")); // author    
    list.add(book);
   }
   
  }catch(Exception e)
  {
   e.printStackTrace();
  }  
  return list;  //  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.Run As-->Java 응용 프로그램,콘 솔 출력

5.저장 과정 에서 sql 문 구 를 실행 합 니 다.

mysql> select * from tb_books;
+------------------+-------+-----------+----------+
| name    | price | bookCount | author |
+------------------+-------+-----------+----------+
| Java       | 56.78 |  13 | Mr. Sun |
|        | 67.3 |  8962 | Mr. Sun |
|        | 78.66 |  5767 | Mr. Sun |
|        | 67.42 |  775 | Mr.Cheng |
+------------------+-------+-----------+----------+
rows in set (0.00 sec)
mysql> call findAllBook();
+------------------+-------+-----------+----------+
| name    | price | bookCount | author |
+------------------+-------+-----------+----------+
| Java       | 56.78 |  13 | Mr. Sun |
|        | 67.3 |  8962 | Mr. Sun |
|        | 78.66 |  5767 | Mr. Sun |
|        | 67.42 |  775 | Mr.Cheng |
+------------------+-------+-----------+----------+
rows in set (0.00 sec)
총결산
이상 은 자바 가 MySQL 저장 프로 세 스 를 호출 하 는 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 댓 글 을 남 겨 주 십시오.

좋은 웹페이지 즐겨찾기