/**
* 添加
*/
public void save(Stu stu){
try {
tran=this.GetSession().beginTransaction();
this.GetSession().save(stu);
tran.commit();
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
}
/**
* 使用HQL全查询
*/
public List getallbyHQL(){
List arr=null;
try {
String hql="from Stu";
Query query=this.GetSession().createQuery(hql);
arr=query.list();
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
return arr;
}
/**
* 根据主键查询
*/
public Stu getbyID(int id){
Stu stu=null;
try {
stu=(Stu) this.GetSession().get(Stu.class, id);
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
return stu;
}
/**
* 根据对象属性查询(使用Query)
*/
public List getbyPropertyQuery(String name){
List arr=null;
try {
//这里不能像SQL语一样select * from Stu where SName=:name,这是不对的。
// Query query=this.GetSession().createQuery("from Stu where SName=:name");
// query.setString("name", name);
//或者
Query query=this.GetSession().createQuery("from Stu where SName=?");
query.setString(0, name);
arr=query.list();
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
return arr;
}
/**
* 根据对象属性查询(使用Criteria)
*/
public List getbyPropertyCriteria(String name){
List arr=null;
try {
Criteria cri=this.GetSession().createCriteria(Stu.class);
Criterion c1=Expression.eq("SName", name);
cri.add(c1);
arr=cri.list();
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
return arr;
}
/**
* 查询部分属性
*/
public List getProperty(){
List arr=new ArrayList();
try {
String hql="select s.SName,s.SSex from Stu as s";
Query query=this.GetSession().createQuery(hql);
List list=query.list();
Iterator iter=list.iterator();
while(iter.hasNext()){
Object[] obj=(Object[]) iter.next();
Stu s=new Stu();
s.setSName(obj[0].toString());
s.setSSex(obj[1].toString());
arr.add(s);
}
} catch (HibernateException e) {
this.CloseSession();
}
return arr;
}
/**
* 查询一个属性
*/
public List getoneProperty(){
List arr=new ArrayList();
try {
String hql="select s.SName from Stu as s";
Query query=this.GetSession().createQuery(hql);
Iterator iter=query.iterate();
while(iter.hasNext()){
Object obj=(Object) iter.next();
Stu s=new Stu();
s.setSName(obj.toString());
arr.add(s);
}
} catch (HibernateException e) {
this.CloseSession();
}
return arr;
}
/**
*查询一个对象一个属性值
*/
public Object getonlyProprotyValue(int s_id){
Object obj=null;
try {
String hql="select s.SName from Stu as s where s.SId=?";
Query query=this.GetSession().createQuery(hql);
query.setInteger(0, s_id);
obj=query.uniqueResult();
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
return obj;
}
/**
* SQL查询
*/
public List getallBYSQL(){
List arr=null;
try {
String sql="select {c.*} from stu as c";
SQLQuery sqlquery=this.GetSession().createSQLQuery(sql);
sqlquery.addEntity("c",Stu.class);
arr=sqlquery.list();
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
return arr;
}
/**
* 根据对象查询
*/
public List getallByObject(Stu s){
List arr=null;
try {
String hql="from Stu as s where s=:stuentity";
//或者
//String hql="from Stu as s where s.SId=:stuentity";
Query query=this.GetSession().createQuery(hql);
query.setEntity("stuentity", s);
arr=query.list();
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
return arr;
}
/**
* 模糊查询
*/
public List getallQueryLike(String name){
List arr=null;
try {
String hql="from Stu as s where s.SName like :name";
Query query=this.GetSession().createQuery(hql);
query.setString("name", "%"+name+"%");
//不能
//query.setString("name", "'%"+name+"%'");
arr=query.list();
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
return arr;
}
/**
* 统计函数
*/
public int CountStu(){
int count=0;
try {
String hql="select count(*) from Stu";
Query query=this.GetSession().createQuery(hql);
count=(Integer) query.uniqueResult();
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
return count;
}
/**
* 条件统计
*/
public int CountByWhere(String sex){
int count=0;
try {
Query query=this.GetSession().createQuery("select count(*) from Stu where SSex=:sex");
query.setString("sex", sex);
count=(Integer)query.uniqueResult();
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
return count;
}
/**
* 统计平均值
*/
public float VagAge(){
float vag=0;
try {
Query query=this.GetSession().createQuery("select avg(SAge) from Stu");
vag=(Float)query.uniqueResult();
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
return vag;
}
/**
* 求和函数
*/
public int sumage(){
int sum=0;
try {
Query query=this.GetSession().createQuery("select sum(SAge) from Stu");
sum=(Integer)query.uniqueResult();
} catch (HibernateException e) {
throw e;
}finally{
this.CloseSession();
}
return sum;
}
分享到:
相关推荐
在这个“hibernate 实践 - Query详解”的主题中,我们将深入理解如何使用Query接口来执行SQL查询,并绑定参数。 1. **Query接口** Query接口是Hibernate提供的一种用于执行HQL(Hibernate查询语言)或SQL查询的API...
总结来说,"Hibernate SQLQuery 本地查询"这篇博客可能深入介绍了如何在Hibernate中使用SQLQuery执行自定义SQL查询,以及如何通过BaseDaoSupport类来封装这些查询,以提升代码的复用性和项目开发效率。通过对SQL...
本文将探讨Hibernate中两种主要的分页方式:`query.scroll()`和使用`query.setFirstResult(), query.setMaxResults()`。 首先,`query.scroll()`方法基于JDBC 2.0的可滚动结果集实现。这种方式允许应用程序在结果...
首先,让我们了解一下Hibernate中的HQL(Hibernate Query Language),它是Hibernate提供的面向对象的查询语言,类似于SQL,但更贴近于Java。在HQL中,我们可以方便地使用聚合函数进行数据处理。例如,如果你想要...
《Hibernate查询条件查询详解》 Hibernate作为Java领域中广受欢迎的对象关系映射(ORM)框架,极大地简化了数据库操作。...在学习和实践中,不断探索和理解Hibernate的查询机制,将使我们在Java开发中游刃有余。
### HIBERNATE_QUERY知识点详解 #### 一、概述 Hibernate作为一款强大的对象关系映射(ORM)框架,为Java开发者提供了一套高效且简洁的方式来处理数据库操作。它支持多种查询方式,包括面向对象的查询语言(HQL)...
Hibernate Query Language(HQL)是Hibernate官方推荐的查询语言,它是面向对象的,与SQL类似,但更加符合Java编程的思维。HQL使得开发者能够更方便地处理对象关系映射,而无需直接编写SQL语句。在使用HQL时,我们...
1. **使用HQL(Hibernate Query Language)** HQL是Hibernate特有的查询语言,类似于SQL,但更面向对象。查询所有数据的HQL语句如下: ```java Session session = sessionFactory.openSession(); Transaction ...
在使用Hibernate进行查询前,首先需要进行基本的配置,包括创建hibernate.cfg.xml配置文件,设置数据库连接信息,以及实体类和表的映射文件(.hbm.xml)。 三、Entity类与表的映射 在Hibernate中,每一个数据库表都...
在Hibernate中,HQL(Hibernate Query Language)是专为ORM设计的一种面向对象的查询语言,它允许开发者以类和对象的方式进行数据查询,而不是直接使用SQL。本资料主要涵盖了Hibernate HQL查询的基本概念、语法以及...
5. **整合Spring和Hibernate**: 在Spring应用中使用Hibernate,通常会创建一个`SessionFactory`的bean,并使用`LocalSessionFactoryBean`进行配置。然后,通过`PlatformTransactionManager`和`...
15. 工具箱指南:Hibernate提供了许多工具类和实用方法来简化开发,这部分会介绍这些工具的使用方法。 16. 示例:父子关系:文档中会包含一个关于如何处理父子关系映射的例子,这是对象模型中常见的关系映射挑战。 ...
Hibernate Query Language(HQL)是Hibernate框架中用于操作对象关系映射(ORM)的一种查询语言。它是面向对象的,设计目的是让开发人员可以使用对象而不是数据库表进行查询,从而简化了与数据库交互的过程。HQL的...
### Hibernate SQLQuery 查询Oracle char类型结果为一个字符的解决方法 在使用Hibernate框架结合Oracle数据库进行数据查询时,经常会遇到一个问题:当查询的结果集中包含char类型的字段时,Hibernate可能会将其映射...
在上面的代码中,我们首先创建了一个 HQL 查询字符串,然后使用 `createQuery()` 方法创建了一个 Query 对象,最后使用 `list()` 方法来获取查询结果。 Restrictions Restrictions 是 Hibernate 中的一个类,它...
以上就是使用Hibernate查询数据表中部分字段的方法。在实际应用中,根据项目需求和性能考虑,可以选择合适的方式进行查询。同时,要注意优化查询,避免全表扫描,减少对数据库的压力。学习和熟练掌握这些技术,将有...
在Java的Hibernate框架中,有时候我们需要执行自定义的SQL查询以获取特定的数据,这时就可以使用SQLQuery接口。本文将深入探讨Hibernate如何通过SQLQuery接口执行原生SQL查询,并展示如何处理查询结果。 一、创建...
本文将深入探讨 HQL 的基本概念、语法以及一些高级用法,帮助读者更好地理解如何在实际开发中应用 HQL。 ## 二、HQL 的特点与优势 ### 2.1 数据库独立性 HQL 是一种与数据库无关的语言,这意味着开发者可以在编写...
4. **javassist.jar**:Hibernate使用javassist库来动态地生成字节码,以实现运行时的类增强,例如为实体类添加代理方法。 5. **jta.jar**或**jboss-transaction-api_1.2_spec.jar**:提供Java Transaction API,...
3. **Hibernate 中文API文档.chm**:这是Hibernate的中文API参考手册,对每个类、接口和方法的详细说明,对于查阅具体功能和方法的使用非常有帮助。 4. **Hibernate3.2.chm**:这个文件可能包含了Hibernate 3.2版本...