一张表BaseTypeEntity中有国家,省份,城市,国家的parentId是0,省的parentId是国家的id,城市的parentId是省的id。输入国家或者省或者城市的中英文查询城市,支持模糊查询
//查询满足条件的城市,将一张表分为三张表用,c代表城市这张表,b代表省这张表,a代表国家这张表
public List<BaseTypeEntity> getCityQueryList(Map<String, Object> conds){
String sql="select distinct c from BaseTypeEntity a, BaseTypeEntity b, BaseTypeEntity c";
sql += getCityListPagingWhereClause(conds);
Query query = this.getSession().createQuery(sql);
Integer pageSize = (Integer) conds.get("pageSize");
Integer startIndex = (Integer) conds.get("startIndex");
query.setFirstResult(startIndex.intValue());
query.setMaxResults(pageSize.intValue());
List<BaseTypeEntity> list = query.list();
return list;
}
//查询城市的SQL语句
private String getCityListPagingWhereClause(Map<String, Object> conds){
String sql = " where 1=1 and c.parentId = b.id and b.parentId = a.id and c.dataType = 'city' and b.dataType='province' and a.dataType='country' ";
if (conds != null) {
Set<String> keyset = conds.keySet();
for (String key : keyset) {
if (!key.equals("pageSize") && !key.equals("startIndex")) {
if (key.equals("cnameCountry")){
sql+= " and a.cname like '%"+conds.get(key)+"%' ";
}
if (key.equals("enameCountry")){
sql+= " and a.ename like '%"+conds.get(key)+"%' ";
}
if (key.equals("cnameProvince")){
sql+= " and b.cname like '%"+conds.get(key)+"%' ";
}
if (key.equals("enameProvince")){
sql+= " and b.ename like '%"+conds.get(key)+"%' ";
}
if (key.equals("cnameCity")){
sql+= " and c.cname like '%"+conds.get(key)+"%' ";
}
if (key.equals("enameCity")){
sql+= " and c.ename like '%"+conds.get(key)+"%' ";
}
}
}
}
sql += " order by c.id";
return sql;
}
分享到:
相关推荐
数据库查询例子
在VB(Visual Basic)编程环境中,数据库查询是一个关键功能,特别...这个"数据库查询例子"压缩包可能包含了实现这些功能的VB源代码,供学习和参考。通过研究和理解代码,开发者可以进一步提升在数据库操作方面的技能。
这个"ASP.NET机票查询例子"是一个基于该技术的学习项目,用于帮助开发者理解和实践如何在实际场景中应用ASP.NET。 在ASP.NET中,你可以利用其强大的控件库和数据绑定机制来构建用户界面。在这个机票查询系统中,...
在这个“Delphi把子查询当作表达式的查询例子”中,我们将探讨如何在Delphi应用中利用子查询作为更复杂查询的一部分。子查询,也称为嵌套查询,是在一个更大的查询内部使用的独立查询,它可以返回单个值、多行或单列...
Title: egThread_线程_数据库后台查询例子_20200110 采用: ini连接的数据库方式, 里面的 2个表可以替换成 自己的表,即可 下面的例子给出了同时进行的两个线程查询。第一次按下按钮时,线程开始执行,以后 ...
这个“简单的Cairngorm登录,查询例子”是一个教程或示例项目,展示了如何在Flex应用程序中利用Cairngorm框架实现用户登录功能,并与后端的J2EE服务器进行数据交互,这里后端服务器使用的是MySQL数据库。 首先,...
本篇将基于标题"分页查询例子"和提供的`MessageModelService2.java`文件,深入探讨分页查询的概念、实现方式以及其在实际开发中的应用。 首先,我们要理解什么是分页查询。分页查询是一种数据检索策略,它允许用户...
在SQL(Structured Query Language)中,复杂查询是用于处理大量数据和执行高级分析的关键技能。这些查询通常涉及多个表的联合、子查询、分组、排序、聚合函数以及更复杂的逻辑操作。以下是一些常见的复杂SQL查询...
在描述中提到的例子是一个DELPHI应用程序,它通过逐步获取用户输入的条件来构建SQL查询语句。SQL(Structured Query Language)是用于管理关系数据库的标准语言,其中包括创建、更新、查询和删除数据。模糊查询在SQL...
本例子将详细介绍如何在IDEA中使用MyBatis进行分页查询,并以员工工资为例进行说明。 首先,我们需要了解MyBatis中的分页插件PageHelper。PageHelper是MyBatis的一个非常实用的辅助插件,它可以无缝地与MyBatis整合...
在这个例子中,我们将深入探讨如何利用SSM框架实现分页查询功能,以便在大型应用中有效地处理大量数据,提升用户体验。 首先,我们需要理解分页查询的基本原理。分页是将大量数据分成小块进行显示,用户可以逐页...
在"执行参数化查询例子"这个文件中,可能包含了一个实际的示例,演示了如何使用C#调用存储过程并处理参数。这将帮助你更好地理解上述概念,并提供实践操作的机会。通过学习和实践这个例子,你可以熟练掌握C#中的参数...
本例子使用 SpringMVC + Mybatis 框架整合, 基于 Spring 注解实现, 省去了 Spring 繁琐的 bean 手工配置,实现的功能包括: 1、 用户登录、注销 2、 登录界面生成验证码图片 3、 用户表数据的增、删、改、查、分页...
这个“hibernate+struts实现数据库查询的例子”是针对初学者的一个实践教程,旨在展示如何整合这两个框架来实现数据库的查询操作。下面将详细介绍这两个框架及其整合使用的方式。 `Hibernate`是Java平台上的一款...
oracle select group 子查询 表连接
《易语言-携程航班查询例子》 在信息技术日益发达的今天,网络编程成为了开发者们不可或缺的技能之一。本文将深入探讨使用易语言实现携程航班查询的例子,帮助读者理解网络编程的基本概念,以及如何利用易语言进行...
这是java里面的这是mybatis使用Mapper代理的例子,配上数据库里面新建一张boy表就可以idea里面完美运行。这是文章的链接,可以对应着看...
这是accessoft上,作者:煮江品茶 写的一个LINQ例子,这几天找了很多参考都不是很好,今天找到这个,感觉非常好,里面各项查询例子写的很好,特意分享。感谢原作者。...时 间:2014-02-22 11:44:49 ...
摘要:C#源码,数据库应用,嵌套查询 一个复杂的C#嵌套查询例子,具体到本例中,就是查询学历是本科的部门经理的2005年10月份的工资情况,相对来说是比较实用的例子,在数据库项目中,这些技巧往往是比较基础的。
非常好的一个多条件查询例子,关键在于使用了类似这样的查询条件:Like "*" & [Forms]![查询]![Combo16] & "*" <P><P>Like 及两个“*”中包含了控件名称,如果控件有值时就以控件的值做为模糊查询条件,当记录等于或...