一、hibernate 查询相关
1、Query查询,要求hql熟练
2、Criteria查询,面向对象的方式查询,hibernate生成sql语句较多,返回结果不满意,还未找到适合的解决方法
public Page getQueryAccountsForPage(Page page) {
/*
* 中文条件查询,最好使用?占位符并使用query.setParameter方式
* jdbc url必须设置编码jdbc:mysql://localhost:3306/notepad?useUnicode=true&characterEncoding=utf8
* */
final String hql = "from Account where email like ? or user.userName like ? order by user.registTime desc";
final String[] parameter = {new String("%" + page.getKeyWord() + "%"),new String("%" + page.getKeyWord() + "%")};
final int offset = (page.getCurrentPage() - 1) * page.getPageSize();
final int length = page.getPageSize();
int count = getHibernateTemplate().find(hql,parameter).size();
List<Account> list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException,SQLException {
Query query = session.createQuery(hql);
query.setParameter(0, parameter[0]);
query.setParameter(1, parameter[1]);
query.setFirstResult(offset);
query.setMaxResults(length);
return query.list();
}
});
/*
* 使用criteria分页查询
* 如果一个用户有多个角色,那么查询该用户时,会返回多个该用户对象
* 未找到合适办法
* */
// List<Account> list = getHibernateTemplate().executeFind(new HibernateCallback() {
// public Object doInHibernate(Session session)
// throws HibernateException, SQLException {
// Criteria criteria = session.createCriteria(Account.class);
// //设置关联属性
// criteria.createCriteria("user", "user");
// //设置模糊查询
// if(keyWord.length() > 0){
// criteria.add(
// Restrictions.or(
// Restrictions.like("email", "%" + keyWord + "%"),
// Restrictions.like("user.userName", "%" + keyWord + "%")
// )
// );
// }
// //设置分页起始
// criteria.setFirstResult(offset);
// criteria.setMaxResults(length);
// //设置排序
// criteria.addOrder(Order.desc("user.registTime"));
// return removeRepeatForAccount(criteria.list());
// }
// });
page.setCount(count);
page.setList(list);
return page;
}
分享到:
相关推荐
"构建基于Maven的SSH原型项目"这个主题,旨在帮助初学者理解和掌握如何使用这些技术搭建一个基础的Web应用。 首先,Maven是Apache开发的一个项目管理工具,它通过一个项目对象模型(Project Object Model,POM)来...
- Maven是一个项目管理和综合工具,它管理项目的构建、报告和文档生成,以及依赖关系。 - Maven通过pom.xml文件来定义项目的构建过程和依赖关系,简化了项目的构建和部署。 - Maven提供了插件系统,可以执行各种...
本示例中,这三大框架被整合到一个基于Maven的项目中,使得开发和管理更加方便。以下是关于这个整合的详细讲解: 1. **Maven基础** Maven是一个项目管理和综合工具,它通过一个统一的构建过程和依赖管理,简化了...
Spring MVC是Spring框架的一个模块,主要用于构建基于模型-视图-控制器(MVC)模式的Web应用程序。它提供了丰富的特性,如请求映射、数据绑定、验证、本地化、视图解析等。Spring MVC的优势在于其松耦合、模块化的...
"基于Maven的springmvc3+spring+hibernate4框架整合"是一个典型的企业级应用开发模式,它利用了Maven的依赖管理和构建功能,以及Spring MVC、Spring和Hibernate这三大流行框架的强大功能。下面将详细介绍这三个框架...
在本项目中,我们主要探讨的是一个基于Maven构建的Java Web应用,它整合了Spring 4、Hibernate 4、Apache Shiro以及Ehcache等多个关键框架,旨在实现用户角色菜单管理的功能。以下是对这些技术及其集成应用的详细...
总之,【基于Maven的Hibernate整合Mycat示例】是一个涵盖了项目构建、数据库连接、ORM框架使用和分布式数据库中间件配置的综合案例。它帮助开发者理解如何在大型系统中处理高并发、大数据量的情况,以及如何通过...
这是一个基于Maven构建的Java项目,它结合了Spring MVC框架、Hibernate ORM工具以及RESTful APIs的实现。这个项目为开发者提供了一个基础的架构,用于开发现代化的企业级Web应用。 ### Maven Maven是Apache软件基金...
【标题】"基于maven做的一个权限 SpringMVC+Spring + hibernate" 涉及的知识点主要包括: 1. Maven:Maven是一个项目管理和综合工具,它管理项目的构建、报告和文档,通过依赖管理和项目信息管理,使得Java开发更加...
- **作用**:Maven 是一个项目管理和综合工具,它通过管理项目的构建、依赖关系以及文档生成,帮助开发者更有效地构建项目。 - **配置**:pom.xml 文件是 Maven 的核心,包含了项目信息、依赖、构建配置等。 - **...
**标题解析:**“hibernate Maven仓库资源”这一标题表明了我们关注的是关于Hibernate框架在Maven项目中的使用。Hibernate是一个流行的Java...这些知识点对于Java开发者在构建基于Hibernate的持久层架构时至关重要。
Maven 是一个项目管理和综合工具,它通过 Pom.xml 文件管理项目的依赖关系,自动化构建流程,如编译、测试、打包等。在 "eip-ssh" 项目中,Maven 用于组织项目结构,管理 SSH 框架和其他库的依赖,简化项目的构建和...
本篇文章将深入探讨如何将这两者结合,创建一个基于Maven的Hibernate项目。 ### Maven入门 1. **Maven配置**: Maven的安装非常简单,只需下载对应操作系统的版本并添加到系统环境变量中。在项目中,通过`pom.xml`...
这个组合提供了全面的开发工具和技术,帮助开发者快速构建基于Java的Web应用程序。下面我们将深入探讨这些技术的细节。 首先,**Maven**是一个项目管理和综合工具,它主要负责构建、依赖管理和项目信息管理。通过在...
本项目"基于Maven Web+Struts+Hibernate实现用户管理,带用户分析"是这样一种实现,它利用了Java EE技术栈中的关键组件来构建高效、可维护的后端系统,并提供用户行为的深度分析。 首先,让我们详细了解一下这三个...
在本项目中,我们主要探讨的是如何使用Maven构建一个基于Spring MVC 4、Tiles布局框架和Hibernate 4的Web应用程序。这个项目采用完全的Java注解配置,摒弃了传统的XML配置方式,使得代码更加简洁,易于维护。以下是...
该项目是一个经典的Java Web开发组合,使用了Maven作为构建工具,Struts2作为表现层框架,Hibernate3作为持久层框架,Spring3作为依赖注入和事务管理框架,且基于Eclipse IDE进行开发。以下是对这些技术栈的详细说明...
首先,Maven是一个项目管理和综合工具,主要负责项目的构建、依赖管理和项目信息管理。通过在项目中引入Maven,开发者可以方便地在线引用jar包,避免了手动下载和管理依赖的问题。Maven使用XML格式的配置文件(pom....
【基于Java的项目代码——源码】:这个项目是一个用Java语言编写的科研项目申报书管理系统,展示了如何在Java环境中实现一个完整的应用系统。在Java编程中,我们通常会使用面向对象的设计原则,包括封装、继承和多态...
【标题】"maven项目demo"揭示了这是一个基于Maven构建的项目示例。Maven是Java开发中广泛使用的项目管理和综合工具,它通过管理项目的构建、报告和文档,简化了项目的构建过程。Maven使用一种标准的项目对象模型...