hibernate执行存储过程

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


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

}



猜你喜欢

转载自blog.csdn.net/lqk1603/article/details/78992045