连的是mssql
public void testQuery(){
Session session=null;
Transaction tx=null;
try{
session=HibernateUtil.getCurrentSession();
tx=session.beginTransaction();
//List list=session.createQuery("select * from emp").list();
List<Object[]> list=session.createSQLQuery("select top 2 ShippingOrderNo,CustomerNo from ShippingOrder").list();
for(int i=0;i<list.size();i++){
Object[] objs=(Object[])list.get(i);
System.out.println(objs[0]);
}
}catch(Exception e){
e.printStackTrace();
if(tx!=null){
tx.rollback();
}
throw new RuntimeException(e.getMessage());
}finally{
if(session!=null&&session.isOpen()){
session.close();
}
}
}打印出:
---------------------------------------Hibernate: select top 2 ShippingOrderNo,CustomerNo from ShippingOrder
E
E
但是,我要的结果是:
01233 1222
01234 12dfdfd
因为数据库里,就是这样的
public void testQuery(){
Session session=null;
Transaction tx=null;
try{
session=HibernateUtil.getCurrentSession();
tx=session.beginTransaction();
//List list=session.createQuery("select * from emp").list();
List<Object[]> list=session.createSQLQuery("select top 2 ShippingOrderNo,CustomerNo from ShippingOrder").list();
for(int i=0;i<list.size();i++){
Object[] objs=(Object[])list.get(i);
System.out.println(objs[0]);
}
}catch(Exception e){
e.printStackTrace();
if(tx!=null){
tx.rollback();
}
throw new RuntimeException(e.getMessage());
}finally{
if(session!=null&&session.isOpen()){
session.close();
}
}
}打印出:
---------------------------------------Hibernate: select top 2 ShippingOrderNo,CustomerNo from ShippingOrder
E
E
但是,我要的结果是:
01233 1222
01234 12dfdfd
因为数据库里,就是这样的
还有,你这Quer...。list()得到的已经是List集合了,为什么还用List(Object[]) 来装?
第二,你只是创建了SQL查询,你都没comMIT,我记得是需要session.commit()才行,具体我也有点模糊了。答提问题就这样吧,自己多百度下,高技术的自己多折腾
String str = (String)list.get(i);
System.out.println(str);
}
不能统一成String啊。
好汉,你说要如何办?
不能统一成String啊。
好汉,你说要如何办?我是打个比方,你可以一个一个的转化啊,不便利直接取集合中的值就行int就转化为Interger
这个应该没什么难的吧,主要的就是类型转换问题
hibernate知识总结,感兴趣的可以看看