Heim > Datenbank > MySQL-Tutorial > mysql存储过程实例_MySQL

mysql存储过程实例_MySQL

WBOY
Freigeben: 2016-06-01 13:26:11
Original
1033 Leute haben es durchsucht

bitsCN.com

由于mysql自定义函数中不能输出两或多个结果,所以需要用到mysql的存储过程。

下面是一个例子。

sql语句:

DROP PROCEDURE IF EXISTS `testguocheng`;

CREATE PROCEDURE `testguocheng`(IN `sql1` varchar(100),IN `sql2` varchar(100))
BEGIN
SET @SQLStr1=CONCAT(sql1 );
PREPARE stmt1 from @SQLStr1 ;
EXECUTE stmt1;

SET @SQLStr2=CONCAT(sql2);
PREPARE stmt2 from @SQLStr2 ;
EXECUTE stmt2;
END;
解释一下这个存储过程,输入的是两个sql语句,得到的结果是两个结果集。

下面是调用的java语句。

public static void getData() {
Connection conn = JdbcUtils.getConnection();
CallableStatement stmt = null;
ResultSet rs=null;

try{
stmt = conn.prepareCall("{call testguocheng('select * from tsys_user;','select count(*) from tsys_user;')}");
boolean flag=stmt.execute();
int i=0;

while(flag){
System.out.println("第几个结果集"+(++i));

rs = stmt.getResultSet();
if(i==1){
while(rs.next()){
System.out.println("uid:" +rs.getString("uid")+",uname:"+rs.getString("uname"));
}
}else{
while(rs.next()){
System.out.println("总数:" +rs.getString(1));
}
}
flag=stmt.getMoreResults();
}
}catch(Exception e){
System.out.println(e.toString());
}finally{
try {
stmt.close();
conn.close();
}catch (Exception ex) {
System.out.println(ex.getMessage());
}
}

}

bitsCN.com
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage