자바 호출 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 저장 프로 세 스 를 호출 하 는 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 댓 글 을 남 겨 주 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.