文档章节

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
博文 137
码字总数 54687
作品 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
Android电话系统之GSMCallTracker

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

陈wei
2013/02/18
0
0
图形化Hibernate框架理解

基于Hibernate框架原理的图形化理解示意图: 图解Hibernate说明: 在Hibernate工作的原理中,它是通过利用数据库以其他的配置如Hibernate.propertie、XML.mapping等来为应用程序(Applicati...

鲁雯雪
2013/12/27
0
0
discuz x2.5论坛和其他系统整合反向数据同步问题

最近给客户做一个手机应用,同时需要搭建一个discuz论坛,给用户交流使用。 目前我们称手机应用项目为:java项目,称论坛为discuz项目。 现在客户的需求是主要下面几点: 1.用户使用手机注册...

度外网络
2012/10/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
0
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
21
5
centos7安装redis及开机启动

配置编译环境: sudo yum install gcc-c++ 下载源码: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 解压源码: tar -zxvf redis-3.2.8.tar.gz 进入到解压目录: cd redis-3......

hotsmile
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部