`

Hibernate 应用总结

阅读更多

一.查询
   Session s=HibernateSessionFactory.getSession();
   Transaction tra=s.beginTransaction();
   Query q=s.createQuery("from Company where name=:name");
   q.setParameter("name","baobao");
1.HQL查询
   from Company c   //Company是映射类而不是表表名,c:是别名。查找对应表所有的记录
                   //不能写成from * from Company c
2.传统SQL方式查询   from Company c where c.name='baobao' //SQL方式查询
3.占位符(?)式查询 参数索引以0开始,而Jdbc的PrepareStatement是以1开始
   Query q=session.createQuery("from Company c where c.name=? and c.id=?");
   q.setParameter(0,"baobao");
   q.setParameter(1,5);
   List l=q.list();       //查询条件name=baobao and id=5的记录
4.命名参数赋值(推荐) 如 :name
   Query q=s.createQuery("from Company c where c.name = :name and c.id = :id");
   q.setParameter("name","baobao");
   q.setParameter("id",5);
   List l=q.list();   //查询条件name=baobao and id=5的记录
5.命名查询方式:主要是将HQL放在相应类的映射文件中
   如:在Company.hbm.xml文件中在<class></class>外面加入
   <query name="Company.byname">
       <![CDATA[FROM Company c WHERE c.name= :name and c.id= :id]]>
   </query>
   然后在JAVA文件中
   Query q=s.getNamedQuery("Company.byname");
   q.setParameter("name","baobao");
   q.setParameter("id",5);
   List l=q.list();
6.连接查询(多表查询)
   from Company c join c.departments d where c.id=5 and d.name=''[=c.departments.name] order by time desc
   //==select * from company inner join departments on company.departmetns_id=departmetns.id
   //[inner] join 不满足条件的对象被过滤
   //left join 返回连接左边的对象,右边即使没有匹配的对象也将返回
   //right join 返回连接右边的对象,左边即使没有匹配的对象也将返回

7.in查询

String hql="FROM A WHERE A.ID IN (:alist)"; 
Query query = getSession().createQuery(hql); 
query.setParameterList("alist", a);

二.更新
1.更新操作update
Query q=s.createQuery("update CourseMonney set score= :score where studentId= :stuId and courseId= :teaId");
         q.setParameter("stuId","20070113");//注意:参数类型必须与字段类型一致
         q.setParameter("teaId",12);
         q.setParameter("score",addscoreForm.getScore());
         q.executeUpdate();
   //相当于"update coursemonney set score=12 where studentid='20070113 and courseid=12'"
三.删除
1.Query q=s.createQuery("delete CourseMonney as c where studentId= :stuId and courseId= :teaId");
         q.setParameter("stuId","20070113");//注意:参数类型必须与字段类型一致
         q.setParameter("teaId",12);
         q.executeUpdate();
   //相当于"delete from coursemonney where studentid='20070113 and courseid=12'"

2.使用HQL语句,动态参数

List<String> list = Arrays.asList(ids.split(","));
        String hql = "delete from Contract_Site where contract.id in(:cid)";
        Query q = super.createQuery(hql);
        q.setParameterList("cid", list);// 注意:参数类型必须与字段类型一致
        q.executeUpdate();

hibernate会根据list数量生成SQL:delete from table where id in (?,?...);

分享到:
评论

相关推荐

    Hibernate知识点总结

    ### Hibernate知识点总结 #### 一、Hibernate概述 Hibernate是一个开源的ORM(Object Relational Mapping,对象关系映射)框架,用于Java应用与关系型数据库之间的交互。它通过使用描述对象和数据库之间映射的元...

    hibernate学习总结文档

    Hibernate 是一个开源的对象关系映射(ORM)框架,它为 Java 开发者提供了一种在 Java 应用程序中管理关系数据库的方式。通过 ORM,Hibernate 可以将 Java 类与数据库表之间的映射关系自动化,从而简化数据访问层的...

    Hibernate4总结文档

    《Hibernate4总结文档》 Hibernate4作为一款强大的Java对象关系映射框架,简化了数据库操作,使得开发者可以更专注于业务逻辑而不是数据库层面的细节。本文将深入探讨Hibernate4的配置和使用,帮助开发者更好地理解...

    hibernate文档总结,技术汇总,PDF版的,hibernate简明参考文档

    总结来说,Hibernate是一个强大的ORM框架,它极大地简化了Java应用的数据库操作,提高了开发效率,并提供了高级特性如缓存、事务管理等。通过深入理解和熟练使用Hibernate,开发者可以构建更高效、更易于维护的...

    简单的HIBERNATE应用

    总结,这个“简单的Hibernate应用”提供了学习和实践Hibernate的基础,包括如何配置、创建实体、执行查询以及在Web环境中集成Hibernate的方法。通过深入理解并熟练运用这些知识,开发者可以更高效地进行Java数据库...

    Hibernate 简单 PPT 总结

    【Hibernate 简单 PPT 总结】 Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作。通过提供一套API和元数据,Hibernate允许开发者将业务对象直接映射到数据库表,从而避免了...

    Hibernate重点总结

    - **SessionFactory**: Hibernate的核心组件,负责创建Session实例,它是线程不安全的,通常在应用启动时创建并全局共享。 - **Session**: 实现业务逻辑的主要接口,代表与数据库的一次会话,负责对象的持久化操作...

    Hibernate大总结/Hibernate面试题大全

    以上总结了Hibernate的一些核心概念和面试中可能遇到的关键知识点。了解这些概念有助于更好地掌握Hibernate框架的使用,以及如何高效地利用Hibernate进行数据库操作。此外,对于面试者而言,熟悉这些概念也能帮助...

    Hibernate 经典总结

    Hibernate 是一个流行的 Java ORM(对象关系映射)框架,它使得开发者可以用面向对象的方式来处理数据库操作,极大地简化了Java应用程序中的数据访问层。Hibernate 对 JDBC 进行了封装,使得程序员无需编写大量的 ...

    hibernate学习总结

    **hibernate学习总结** Hibernate 是一款开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。在Java世界中,Hibernate 提供了一种在对象模型和关系数据库之间进行转换的机制,使得开发...

    hibernate技术研究对比总结

    **HIBERNATE技术总结** Hibernate 是一个流行的 Java 应用程序框架,它提供了一种对象关系映射(ORM)解决方案,将数据库操作转化为面向对象的编程。此文档旨在研究和对比 Hibernate 技术的不同方面,帮助开发者更...

    Hibernate课程的总结

    总结所述,Hibernate为Java开发者提供了强大的数据库操作工具,通过理解并熟练运用其核心概念和技术,能极大地提升开发效率和应用质量。通过阅读提供的“hibernate课堂笔录_0906.txt”,可以进一步巩固这些知识,并...

    SSH应用开发-Hibernate应用入门.zip_hibernate

    本教程提供的"SSH应用开发-Hibernate应用入门.docx"文档,将详细讲解如何配置Hibernate环境,创建实体类,编写映射文件,以及如何进行基本的CRUD操作。对于初学者,这是一个很好的起点,通过学习可以掌握Hibernate的...

    Hibernate工作中应用的总结.doc

    【Hibernate工作应用总结】 在IT行业中,Hibernate是一个广泛使用的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。以下是对Hibernate在实际工作应用中的总结,旨在帮助开发者更好地理解和使用...

    hibernate关联关系总结

    总的来说,理解并熟练运用Hibernate的关联关系对于开发高效、可靠的Java应用程序至关重要。通过合理的关联设计,可以简化对象模型与数据库之间的转换,提高开发效率,减少潜在的错误。在实际项目中,开发者应根据...

Global site tag (gtag.js) - Google Analytics