標籤:
在java中調用帶傳回值的預存程序的實現
直接上代碼:
DELIMITER $$CREATE /*[DEFINER = { user | CURRENT_USER }]*/ PROCEDURE `test`.`text_e`(IN param1 INT ,OUT param2 VARCHAR(20)) /*LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT ‘string‘*/ BEGINSELECT user_name INTO param2 FROM USER WHERE user_id=param1; END$$DELIMITER ;
java代碼:
public static String getUserNameById(int id){Connection con = BaseDao.getConnection();CallableStatement proc = null;try {proc = con.prepareCall("{call text_e(?,?)}");proc.setInt(1, id);//輸入proc.registerOutParameter(2, Types.VARCHAR);//輸出proc.execute();return proc.getString(2);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {try {proc.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return null;}
java調用預存程序mysql