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(); } }