MySQL 저장 프로 세 스 학습 및 자바 에서 의 호출
1. 우선, 다음 자바 코드 의 테스트 에 사용 할 새 표를 만 듭 니 다.
create table a
(
id int(10) not null,
name varchar(20) not null
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
2. 표 에 데 이 터 를 삽입 하 다.
insert into a ( `id`, `name` ) values ('1', 'best');
insert into a ( `id`, `name` ) values ('2', 'great');
insert into a ( `id`, `name` ) values ('3', 'china');
insert into a ( `id`, `name` ) values ('4', 'beijing');
3. MySQL 의 기본 줄 바 꿈 문 자 를 수정 합 니 다. ";"\#\# "입 니 다.
delimiter ##
4. 출력 매개 변 수 를 가 진 저장 과정 을 만 듭 니 다.
create procedure hello(out num int)
begin
select Max(id) into num from a;
end##
5. 두 개의 출력 매개 변 수 를 가 진 저장 과정 을 만 듭 니 다.
create procedure hello2(out num int, out str varchar(20))
begin
select Max(id) into num from a;
select name from a where a.id = num into str;
end##
6. MySQL 의 줄 바 꿈 자 를 ";"로 수정 합 니 다.
delimiter ;
7. 자바 프로그램의 호출.
package cn.lifx.util.procedure;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Types;
public class Test
{
String url = "jdbc:mysql://127.0.0.1:3306/test";
String name = "root";
String password = "china";
public static void main(String[] args)
{
Test test = new Test();
test.proc();
test.proc2();
}
public Connection getConnection()
{
Connection con = null;
try
{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, name, password);
}catch(Exception e){
e.printStackTrace();
}
return con;
}
public void proc()
{
Connection conn = getConnection();
CallableStatement stmt = null;
try
{
stmt = conn.prepareCall("{call hello(?)}");
stmt.registerOutParameter(1, Types.INTEGER);
stmt.execute();
int i = stmt.getInt(1);
System.out.println(i);
}catch(Exception e){
e.printStackTrace();
}finally
{
try
{
stmt.close();
conn.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
public void proc2()
{
Connection conn = getConnection();
CallableStatement stmt = null;
try
{
stmt = conn.prepareCall("{call hello2(?, ?)}");
stmt.registerOutParameter(1, Types.INTEGER);
stmt.registerOutParameter(2, Types.VARCHAR);
stmt.execute();
int i = stmt.getInt(1);
String str = stmt.getString(2);
System.out.println(i + " " + str);
}catch(Exception e){
e.printStackTrace();
}finally
{
try
{
stmt.close();
conn.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
}
8. 출력 결 과 는:
4
4 beijing
아래 링크 는 이 과정 들 이 MySQL 의 CMD 명령 행 에서 실행 되 는 과정 입 니 다.
http://dl.iteye.com/upload/picture/pic/44745/31622578-8500-3019-b6f2-dc3858cba641.jpg
http://dl.iteye.com/upload/picture/pic/44747/e3e5cc97-1ab3-363b-aacc-6850b71c48d7.jpg
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.