文档章节

java 关于查询列表中含有子集的处理;

尾生
 尾生
发布于 2017/02/16 16:43
字数 387
阅读 9
收藏 0

以前总是抱着sql能一句话解决的问题,就尽量使用SQL;这种强迫性的懒惰心理,务必要克制;

原因: 一条sql语句面对负责的业务,即使能实现也不利于维护,太长,可读性差;

一个大sql不足:1,后期难以维护;2,取总记录数查一次 取所需页数据也要查一次而且这个查询是先取数据再排序比较重耗资源

作为java开发,应该遵从复杂问题分而治之,分成一个个小问题,然后通过代码去实现;

下面,我举一个例子;

    比如: 查询学生列表, 学生报有多个补习班 , 一次性列出 所有学生,及每个学生报名的补习班 (其中,男女有别,男的补习班排除艺术班,女的排除音乐班)!

sql语句实现方式:

    

这种方法业务集中在sql中,和不利于后期的维护与修改,所以不推荐

java实现方式:

好的方式我也不太懂,只能先记录下我目前实现方式;

1.初级查询基础列表的 resultList

// 多个渠道 > 每个渠道内隐藏多个投放城市
		RowMapper<ChannelPageModel> rowMapper = 
new BeanPropertyRowMapper<ChannelPageModel>(ChannelPageModel.class);
		List<ChannelPageModel> resultList=null;
		if(args!=null && args.size()>0){

			resultList = jdbcTemplate.query(sqlStr.toString(),args.toArray(), rowMapper);
		}else{
			resultList = jdbcTemplate.query(sql,rowMapper);
		}

2. 遍历单个对象,赋值查询1对多关系集合, 塞入到PriceTypes集合中即可

好了; 记录结束;

 

© 著作权归作者所有

共有 人打赏支持
尾生
粉丝 15
博文 138
码字总数 54708
作品 0
杭州
程序员
SpringBoot实战(四)之使用JDBC和Spring访问数据库

这里演示的是h2databse示例,所以简单的介绍普及下h2database相关知识 H2数据库是一个开源的关系型数据库。 H2是一个嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个...

youcongtech
08/03
0
0
Java规范面临第二次分裂危机

其实这样的危机对于Java来说已经不是第一次了,在上个世纪90年代后期,也就是Java刚刚出现不长时间就遇到了第一次危机。当时微软为了 跟SUN之间争夺Java的事实标准权,开发了自己特有的版本V...

walkerxk
2010/06/01
0
0
Play源码深入之一:从play命令开始

Play的命令是借助python脚本,这从下载的play包就能明显看出来:一是其中有一个python包,里面是一个play自带的python环境,还有是play.bat文件: @echo off"%~dp0pythonpython.exe" "%~dp0p...

奋斗到天明
2015/08/27
0
0
MyBatis 实践 -Mapper与DAO

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hanqing280441589/article/details/50760236 标签: Java与存储 MyBatis简介 MyBatis前身是iBatis,是一个基于...

菜鸟-翡青
2016/02/28
0
0
Android电话系统之GSMCallTracker

GSMCallTracker在本质上是一个Handler。 GSMCallTracker是Android的通话管理层。GSMCallTracker建立了ConnectionList来管理现行的通话连接,并向上层提供电话调用接口。 在GSMCallTracker中维...

陈wei
2013/02/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Coding and Paper Letter(三十九)

资源整理。 1 Coding: 1.Python库benchmark rio s3,用于在访问S3上的文件时对Rasterio / GDAL的多线程性能进行基准测试的工具。 benchmark rio s3 2.Pangeo-Binder Cookiecutter模板。 cook...

胖胖雕
30分钟前
0
0
Promise 对象

Promise(承诺) 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供...

简心
33分钟前
0
0
让UI设计师崩溃的瞬间,你经历过哪些?

隔行如隔山,这句话人人耳熟能详,但其实隔行并不可怕,大家各谋其事,各尽其职,倒也互不打扰,真正可怕的是,是内行还要受外行指点江山,而最难的部分,便是那沟通。流畅的沟通,和声细语,...

mo311
35分钟前
1
0
python进制转换

#进制转换print(bin(10)) #十进制转换成二进制print(oct(10)) #十进制转换成八进制print(hex(10)) #十进制转换成十六进制print(int('1010',2)) #二进制转十进制print(int(...

fadsaa
46分钟前
3
0
syntax error near unexpected token

最近不断重复在虚拟机CentOS测试安装gitlab,因为gitlab有一个脚本需要饭强才能下载,于是我先在windows下载好再上传到虚拟机,可是执行脚本的时候提示“syntax error near unexpected toke...

W_Lu
55分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部