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();
}
}
}
我基本上不使用hibernate的getNamedQuery重新设计输入,但是java.sql类可以正常工作!