Hibernate —— 原生SQL的实例
来源:互联网 发布:泡泡交友软件 编辑:程序博客网 时间:2024/06/06 13:20
package me.ljm.hibernate.test;import java.util.List;import java.util.Map;import me.ljm.hibernate.dto.StudentDto2;import me.ljm.hibernate.entity.Classroom;import me.ljm.hibernate.entity.Special;import me.ljm.hibernate.entity.Student;import org.hibernate.Session;import org.hibernate.transform.Transformers;import org.junit.Test;/** * 原生SQL操作 * @author ljm * */@SuppressWarnings("unchecked")public class SqlTest extends AbstractTest {/** * 返回数据类型为Entity * 实现方法:addEntity(Student.class) * @throws Exception */@Testpublic void testEntity() throws Exception {Session session = null;try {session = getSession();session.beginTransaction();String sql = "select * from t_student where name like ?";List<Student> stus = session.createSQLQuery(sql).addEntity(Student.class).setParameter(0, "%张%").list();for (Student student : stus) {System.out.println(student.getName());}session.getTransaction().commit();} catch (Exception e) {session.getTransaction().rollback();e.printStackTrace();} finally {close(session);}}/** * 返回数据类型为Dto(不带关联对象) * 实现方法: * @throws Exception */@Testpublic void testDto1() throws Exception {Session session = null;try {session = getSession();session.beginTransaction();String sql = "select stu.id as id,stu.name as name,stu.sex as sex,cla.name as cname,spe.name as spename"+ " from t_student stu"+ " left join t_classroom cla on stu.cla_id = cla.id"+ " left join t_special spe on cla.special_id = spe.id"+ " where stu.name like ?";List<StudentDto2> stus = session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(StudentDto2.class)).setParameter(0, "%张%").list();for (StudentDto2 student : stus) {System.out.println(student);}session.getTransaction().commit();} catch (Exception e) {session.getTransaction().rollback();e.printStackTrace();} finally {close(session);}}/** * 返回数据类型为Object[] * 实现方法:.addEntity("stu", Student.class) .addEntity("cla", Classroom.class) .addEntity("spe", Special.class) * @throws Exception */@Testpublic void testObjectArray() throws Exception {Session session = null;try {session = getSession();session.beginTransaction();String sql = "select {stu.*},{cla.*},{spe.*}"+ " from t_student stu"+ " inner join t_classroom cla on stu.cla_id = cla.id"+ " inner join t_special spe on cla.special_id = spe.id"+ " where stu.name like ?";List<Object[]> result = session.createSQLQuery(sql).addEntity("stu", Student.class).addEntity("cla", Classroom.class).addEntity("spe", Special.class).setParameter(0, "%张%").list();Student stu = null;Classroom cla = null;Special spe = null;for (Object[] obj : result) {stu = (Student) obj[0];cla = (Classroom) obj[1];spe = (Special) obj[2];System.out.println(stu.getName()+","+cla.getName()+","+spe.getName());}session.getTransaction().commit();} catch (Exception e) {session.getTransaction().rollback();e.printStackTrace();} finally {close(session);}}/** * 返回数据类型为Map * 实现方法:setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP) * @throws Exception */@Testpublic void testMap() throws Exception {Session session = null;try {session = getSession();session.beginTransaction();String sql = "select spe.name as name, "+ " sum(case stu.sex when '男' then 1 else 0 end) as mNum,"+ " sum(case stu.sex when '女' then 1 else 0 end) as wNum"+ " from t_student stu"+ " right join t_classroom cla on cla.id = stu.cla_id"+ " right join t_special spe on spe.id = cla.special_id"+ " group by spe.id";List<Map<String, Object>> result = session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();for (Map<String, Object> map : result) {System.out.println(map.get("name")+","+map.get("mNum")+","+map.get("wNum"));}session.getTransaction().commit();} catch (Exception e) {session.getTransaction().rollback();e.printStackTrace();} finally {close(session);}}}
0 0
- Hibernate —— 原生SQL的实例
- Hibernate入门实例——使用原生SQL的查询
- Hibernate的原生SQL查询
- hibernate 原生sql的使用
- Hibernate 原生sql的执行
- Hibernate的原生SQL查询
- hibernate的原生 sql查询
- hibernate的原生sql两表连接
- HIBERNATE对原生SQL的处理
- 获得Hibernate Criteria的原生SQL
- 简单的hibernate原生SQL TestDemo
- 使用hibernate执行原生的sql
- Hibernate原生sql与HQL的区别
- hibernate执行原生sql的别名问题
- Hibernate执行原生的sql语句
- hibernate执行原生sql
- Hibernate 使用原生SQL
- Hibernate 执行原生sql
- 三、命令模式Commond(行为型模式)
- MTK Nucleus平台软件log抓取方法
- 文本文件中查找第一字段包含786707,第二字段是11的所有行(命令行操作)
- JDK容器与并发—Queue—LinkedBlockingQueue
- java反射代理学习
- Hibernate —— 原生SQL的实例
- php伪装客户IP采集
- 多进程并发编程----进程间传递文件描述符案例
- jasperreport position type 详解
- 如何将pdf转换成ppt演讲稿
- easy touch利用playmaker拖动ngui对象
- iOS APP上架详细流程
- HBase -ROOT-和.META.表结构(region定位原理)
- Python 练习实例15