我可以用休眠调用存储过程吗?

时间:2012-03-12 10:34:03

标签: hibernate stored-procedures

我对hibernate有点新意,不知道如何使用hibernate调用存储过程。 我有关于存储过程的以下详细信息。

Env : xxx
DB :  xxx
Database : xxxxx

Stored Proc : spCwebCloneSite
Input : SiteId int (existing site id)
NewSiteId int (new site id)

现在我有现有的和新的网站ID。但我不知道如何使用Hibernate映射它。

1 个答案:

答案 0 :(得分:0)

import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.util.Iterator;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;



public class StoredProc {


    public static void main(String[] args) {

        Session session = null;

        CallableStatement callableStatement = null;
        ResultSet resultSet = null;

        try{

            SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
            session = sessionFactory.openSession();

            System.out.println("selecting records");

            callableStatement = session.connection().prepareCall("{call getRecords}");
            callableStatement.execute();

            resultSet = callableStatement.getResultSet();

            while(resultSet.next()){
                System.out.println(resultSet.getInt(1));
                System.out.println(resultSet.getString(2));
            }



            System.out.print("OK");

        }
        catch (Exception e) {
            e.printStackTrace();
        }
        finally{
            session.flush();
            session.close();
        }
    }
}