hibernate执行存储过程
CallableStatement cs3=session.connection().prepareCall("{call p_zd_xm1_3(?,?,?)}");
仅返回结果集
ResultSet s1= cs.executeQuery();
设置出参
cs2.registerOutParameter(3, java.sql.Types.INTEGER);
cs2.registerOutParameter(4, java.sql.Types.VARCHAR);
不返回结果集,有出参
cs2.execute();
System.out.println(cs2.getInt(3)+"."+cs2.getString(4));
既有结果集,又有出参
ResultSet s3= cs3.executeQuery();
cs3.getMoreResults(); //这行放在最后,会关闭ResultSet
System.out.println(cs3.getInt(2)+"."+cs3.getString(3));
CallableStatement cs3=session.connection().prepareCall("{call p_zd_xm1_3(?,?,?)}");
仅返回结果集
ResultSet s1= cs.executeQuery();
设置出参
cs2.registerOutParameter(3, java.sql.Types.INTEGER);
cs2.registerOutParameter(4, java.sql.Types.VARCHAR);
不返回结果集,有出参
cs2.execute();
System.out.println(cs2.getInt(3)+"."+cs2.getString(4));
既有结果集,又有出参
ResultSet s3= cs3.executeQuery();
cs3.getMoreResults(); //这行放在最后,会关闭ResultSet
System.out.println(cs3.getInt(2)+"."+cs3.getString(3));
附class文件:
package main;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import dao.EaZdXm;
import dao.EaZdXm1;
import dao.EaZdXm1A;
import dao.EaZyyjmxk;
import dao.TblUser;
public class TestProc {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Session session= HibernateUtilBJSYYY.currentSession();
session.beginTransaction();
List list= session.getNamedQuery("getUserList").list();
for(int i=0;i<list.size();i++)
{
TblUser user= (TblUser)list.get(i);
System.out.println(user.getName());
}
try {
ResultSet s= session.connection().prepareCall("{call p_zd_xm1}").executeQuery();
while(s.next()){
int id=s.getInt("ea_id");
String mc=s.getString("ea_xmm");
System.out.println(id+"."+mc);
}
System.out.println("p_zd_xm1");
CallableStatement cs=session.connection().prepareCall("{call p_zd_xm1_1(?)}");
cs.setInt("@id",7);
ResultSet s1= cs.executeQuery();
while(s1.next()){
int id=s1.getInt("ea_id");
String mc=s1.getString("ea_xmm");
System.out.println(id+"."+mc);
}
System.out.println("p_zd_xm1_2");
CallableStatement cs2=session.connection().prepareCall("{call p_zd_xm1_2(?,?,?,?)}");
cs2.setInt(1,7);
cs2.setString(2,"yyy2");
cs2.registerOutParameter(3, java.sql.Types.INTEGER);
cs2.registerOutParameter(4, java.sql.Types.VARCHAR);
cs2.execute();
System.out.println(cs2.getInt(3)+"."+cs2.getString(4)+"."+cs2.getUpdateCount());
System.out.println("p_zd_xm1_3");
CallableStatement cs3=session.connection().prepareCall("{call p_zd_xm1_3(?,?,?)}");
cs3.setInt(1,7);
cs3.registerOutParameter(2, java.sql.Types.INTEGER);
cs3.registerOutParameter(3, java.sql.Types.VARCHAR);
ResultSet s3= cs3.executeQuery();
//Boolean b=cs3.execute();
//ResultSet s3= cs3.getResultSet();
while(s3.next()){
int id=s3.getInt("ea_id");
String mc=s3.getString("ea_xmm");
System.out.println(id+"."+mc);
}
cs3.getMoreResults(); //这行放在最后,会关闭ResultSet
System.out.println(cs3.getInt(2)+"."+cs3.getString(3)+"."+cs3.getUpdateCount());
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
session.getTransaction().commit();
}
}