mysql에 stored procedure 만들기
delimiter //
CREATE PROCEDURE getServerId(ip VARCHAR(15), OUT serverId tinyint)
BEGIN
SELECT id INTO serverId FROM tServer WHERE serverIp = ip;
END;
//
delimiter ;
- mysql에서는 ;가 command의 종료를 의미하는데 stored procedure의 경우 여러 query의 조합이라 중간에 ;가 들어갈 수 있는데, 그러면 문법 오류로 간주되므로 delimiter를 임시로 다른 걸로 바꾼 후 sp를 만들고 다시 예전 delimiter로 변경하는 것임.
java에서 call하는 코드
try {
String CLASS_NAME = "com.mysql.jdbc.Driver";
String DB_URL = "jdbc:mysql://localhost:3306/test";
String USR = "id";
String PASSWD = "pw";
Class.forName(CLASS_NAME);
Connection con = DriverManager.getConnection(DB_URL, USR, PASSWD);
CallableStatement stat = conn.prepareCall("call getServerId(?, ?)");
stat.setString(1, "127.0.0.1");
stat.registerOutParameter(2, Types.TINYINT);
stat.execute();
System.out.println(stat.getByte(2));
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
delimiter //
CREATE PROCEDURE getServerId(ip VARCHAR(15), OUT serverId tinyint)
BEGIN
SELECT id INTO serverId FROM tServer WHERE serverIp = ip;
END;
//
delimiter ;
- mysql에서는 ;가 command의 종료를 의미하는데 stored procedure의 경우 여러 query의 조합이라 중간에 ;가 들어갈 수 있는데, 그러면 문법 오류로 간주되므로 delimiter를 임시로 다른 걸로 바꾼 후 sp를 만들고 다시 예전 delimiter로 변경하는 것임.
java에서 call하는 코드
try {
String CLASS_NAME = "com.mysql.jdbc.Driver";
String DB_URL = "jdbc:mysql://localhost:3306/test";
String USR = "id";
String PASSWD = "pw";
Class.forName(CLASS_NAME);
Connection con = DriverManager.getConnection(DB_URL, USR, PASSWD);
CallableStatement stat = conn.prepareCall("call getServerId(?, ?)");
stat.setString(1, "127.0.0.1");
stat.registerOutParameter(2, Types.TINYINT);
stat.execute();
System.out.println(stat.getByte(2));
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
'programming > MySQL' 카테고리의 다른 글
mysql에서 stored procedure 만들면서 주의 할 것 (2) | 2006.09.22 |
---|---|
DBDesigner 4와 MySQL 4.1의 연결 (2) | 2006.01.25 |
DECLARE @var1 int (5) | 2006.01.20 |