Calling a Stored Procedure in Hibernate

后端 未结 2 391
时光说笑
时光说笑 2020-12-10 22:02

I just started learning hibernate last night and its rather fun. I am some trouble calling a stored procedure as a sql-query with hibernate. I have attached the source and t

2条回答
  •  不思量自难忘°
    2020-12-10 22:39

    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 SelectPP {
    
    
        public static void main(String[] args) {
    
            Session session = null;
            //String query = "select example.id, example.data from Example example";
            CallableStatement callableStatement = null;
            ResultSet resultSet = null;
    
            try{
    
                SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
                session = sessionFactory.openSession();
    
                System.out.println("selecting records");
        //      Query q = session.getNamedQuery("getRecordsSP");
        //      Query q =  session.createSQLQuery("call getRecords","",Example.class);
        //      Query q = session.getNamedQuery("getRecordsSP");
    
                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));
                }
    
                //resultSet.
    
                System.out.print("Done");
                //List l = q.list();
    
    
            //  for(Iterator it = l.iterator() ;it.hasNext();){
            //      Object row [] = (Object []) it.next();
    
            //      Example row = (Example) it.next();
            //      System.out.println(row.getUser_id());
            //      System.out.println(row.getUser_data());
            //      System.out.println(row.length);
            //      System.out.println("ID " + row[0]);
            //  System.out.println("Data "+ row[1]);
    
            }
            catch (Exception e) {
                e.printStackTrace();
            }
            finally{
                session.flush();
                session.close();
            }
        }
    }
    

    I basically redesign the input without using hibernate getNamedQuery, but the java.sql class and it worked!!!

提交回复
热议问题