001、输入+简单输出
CREATE DEFINER=`root`@`localhost` PROCEDURE `Pro_insert_maps`(
IN MapID_var INT(4),
OUT count_var int(12)
)
BEGIN
SELECT COUNT(MapID) into count_var FROM maps WHERE MapID=MapID_var;
if(count_var=0) THEN
INSERT INTO maps (MapID) VALUES(MapID_var);
END IF;
END;
declare count_ in default 0;
#CALL Pro_insert_maps(10055,count_);
java
//@Test
public void testCall(){//输入IN参数,简单输出OUT参数
Connection conn=JDBCUtil.getConn();
CallableStatement stat=null;
String sql="{call Pro_insert_maps(?,?)}";
try {
stat=conn.prepareCall(sql);
stat.setInt(1, 10055);
stat.registerOutParameter(2, Types.NUMERIC);
stat.execute();
System.out.println("count:"+stat.getInt(2));
} catch (SQLException e) {
e.printStackTrace();
}finally{
JDBCUtil.free(conn, stat, null);
}
}
002、输入+列表输出
DROP PROCEDURE IF EXISTS Pro_select_maps;
CREATE PROCEDURE Pro_select_maps()
BEGIN
SELECT * FROM maps ;
END;
java
@Test
public void testCallResultSet(){//返回ResultSet
Connection conn=JDBCUtil.getConn();
CallableStatement stat=null;
ResultSet result=null;
String sql="{call Pro_select_maps}";
try {
stat=conn.prepareCall(sql);
boolean hasResult=stat.execute();
if(hasResult){
result=stat.getResultSet();
while(result.next()){
System.out.println("mapName:"+result.getString("MapName"));
}
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
JDBCUtil.free(conn, stat, null);
}
}