hibernate使用sql查询
2015-07-30 10:14
225 查看
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()); } }
引自:http://www.cnblogs.com/redant/archive/2010/01/28/1658479.html
相关文章推荐
- hibernate使用sql查询
- Oracle GoldenGate安装配置
- hibernate使用sql查询
- 用c# 将Access表修改复制到Sql server表
- plsql连接异常问题
- Oracle_SQL_序列与groupby同时用
- Oracle_SQL_序列与groupby同时用
- plsql连接异常问题
- Oracle GoldenGate快速入门教程:基本概念和配置
- Oracle_SQL_序列与groupby同时用
- plsql连接异常问题
- SQL - 主键
- .NET 连接oracle
- [MySQL优化案例]系列 — RAND()优化
- mysql分区表技术
- mysql的数据类型int、bigint、smallint 和 tinyint取值范围
- Mysql在大型网站的应用架构演变
- (5) SQL 语句 - 校对规则
- MongoDB3.0 创建用户
- ORACLE基本语法