Hibernate使用sql语句查询
2011-10-26 20:28
459 查看
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.hibernate.Hibernate;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.transform.Transformers;
import com.hibernate.bean.SqlQueryBean;
import com.hibernate.bean.User;
import com.hibernate.util.HibernateUtil;
public class SqlQueryTest {
public static void main (String [] args){
sqlQueryAddScalar();
}
static void sqlQueryAddEntity(){
//获取Hibernate Session对象
Session session = HibernateUtil.getSession();
//开始事务
Transaction tx = session.beginTransaction();
//编写SQL语句
String sqlString = "select * from user";
//以SQL语句创建SQLQuery对象
List l = session.createSQLQuery(sqlString)
//将查询ss实体关联的User类
.addEntity("ss",User.class)
//返回全部的记录集
.list();
//遍历结果集
Iterator it = l.iterator();
while (it.hasNext()){
//因为将查询结果与Student类关联,因此返回的是Student集合
User s = (User)it.next();
String a = s.getName();
System.out.println(a);
}
//提交事务
tx.commit();
session.close();
}
static void sqlQueryAddScalar(){
//返回Object[]的遍历
Session session=HibernateUtil.getSession();
Transaction transaction=session.beginTransaction();
String sql="select * from user";
SQLQuery s=(SQLQuery) session.createSQLQuery(sql); //.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)
s.addScalar("id",Hibernate.INTEGER); //列名, 数据类型
s.addScalar("name",Hibernate.STRING);
List list=s.list();
Object[] objects=(Object[])list.get(0);
System.out.println(objects[0]);
System.out.println(objects[1]);
//用MAP
SQLQuery ss=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
ss.addScalar("id",Hibernate.INTEGER);
ss.addScalar("name",Hibernate.STRING);
List list2=ss.list();
Map map = (Map) list2.get(0);
System.out.println(map.get("name"));
System.out.println(map.get("id"));
//用LIST
SQLQuery s3=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.TO_LIST);
s3.addScalar("id",Hibernate.INTEGER);
s3.addScalar("name",Hibernate.STRING);
List list3=s3.list();
List list4=(List)list3.get(0);
System.out.println(list4.get(0));
System.out.println(list4.get(1));
//用自定义的bean
SQLQuery e=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(SqlQueryBean.class));
e.addScalar("id",Hibernate.INTEGER);
e.addScalar("name",Hibernate.STRING);
List r=e.list();
SqlQueryBean sqb=(SqlQueryBean)r.get(0);
System.out.println(sqb.getId());
System.out.println(sqb.getName());
}
}
import java.util.List;
import java.util.Map;
import org.hibernate.Hibernate;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.transform.Transformers;
import com.hibernate.bean.SqlQueryBean;
import com.hibernate.bean.User;
import com.hibernate.util.HibernateUtil;
public class SqlQueryTest {
public static void main (String [] args){
sqlQueryAddScalar();
}
static void sqlQueryAddEntity(){
//获取Hibernate Session对象
Session session = HibernateUtil.getSession();
//开始事务
Transaction tx = session.beginTransaction();
//编写SQL语句
String sqlString = "select * from user";
//以SQL语句创建SQLQuery对象
List l = session.createSQLQuery(sqlString)
//将查询ss实体关联的User类
.addEntity("ss",User.class)
//返回全部的记录集
.list();
//遍历结果集
Iterator it = l.iterator();
while (it.hasNext()){
//因为将查询结果与Student类关联,因此返回的是Student集合
User s = (User)it.next();
String a = s.getName();
System.out.println(a);
}
//提交事务
tx.commit();
session.close();
}
static void sqlQueryAddScalar(){
//返回Object[]的遍历
Session session=HibernateUtil.getSession();
Transaction transaction=session.beginTransaction();
String sql="select * from user";
SQLQuery s=(SQLQuery) session.createSQLQuery(sql); //.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)
s.addScalar("id",Hibernate.INTEGER); //列名, 数据类型
s.addScalar("name",Hibernate.STRING);
List list=s.list();
Object[] objects=(Object[])list.get(0);
System.out.println(objects[0]);
System.out.println(objects[1]);
//用MAP
SQLQuery ss=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
ss.addScalar("id",Hibernate.INTEGER);
ss.addScalar("name",Hibernate.STRING);
List list2=ss.list();
Map map = (Map) list2.get(0);
System.out.println(map.get("name"));
System.out.println(map.get("id"));
//用LIST
SQLQuery s3=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.TO_LIST);
s3.addScalar("id",Hibernate.INTEGER);
s3.addScalar("name",Hibernate.STRING);
List list3=s3.list();
List list4=(List)list3.get(0);
System.out.println(list4.get(0));
System.out.println(list4.get(1));
//用自定义的bean
SQLQuery e=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(SqlQueryBean.class));
e.addScalar("id",Hibernate.INTEGER);
e.addScalar("name",Hibernate.STRING);
List r=e.list();
SqlQueryBean sqb=(SqlQueryBean)r.get(0);
System.out.println(sqb.getId());
System.out.println(sqb.getName());
}
}
相关文章推荐
- Hibernate使用sql语句查询
- Hibernate使用sql语句实现多表关联查询
- Hibernate使用sql语句查询
- Hibernate使用sql语句实现多表关联查询
- Hibernate中使用SQL处理复杂的查询语句(on calsue)
- Hibernate3.1.3使用自定义实体类实现对SQL查询语句的映射
- Hibernate之使用sql语句查询多个表,返回多种字段,将返回结果映射到自定义的普通pojo类中
- 在Hibernate中使用HibernateTemplate来进行包含sql语句的查询
- Hibernate使用sql语句查询,返回实体类型的方法及注意事项
- Hibernate使用sql语句查询
- hibernate中使用sql语句进行表链接查询,对结果集的遍历方法
- 关于Hibernate在使用原生SQL语句多表查询所遇到的问题
- hibernate使用sql语句查询实体时,要写上addEntity
- Hibernate查询时,使用HQL和SQL的区别(SUM语句)
- hibernate使用本地sql语句查询,解决List<Object[]>转换成List<实体>
- Hibernate基础-使用标准SQL语句进行查询
- Hibernate 使用纯SQL语句完成查询操作
- Hibernate使用sql语句查询
- Hibernate中的sql语句中使用分组查询
- hibernate使用hql和sql查询总记录数语句