【黑马训练营】利用欧姆表达式优化省市县联动——欧姆表达式,ListView与Model层的使用
2014-01-01 18:56
260 查看
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
首先探讨一下Model层在什么状况下有用,毕竟不言而喻的事实是,Model会增加代码量,所以我们必须在意它能带来的收益:
Model使得可以抽象化实例,然后利用属性在界面甚至架构间传值。因此如果想让UI层和BLL层彻底分离,那么用Model互相调用值是个不错的选择。
Model可以设置多个属性,意味着它带有一定的“数组”功能,可以视为一个二维数组,即外层数组中的每一个元素都是一个新的数组,而内层数组则用来保存数据。这就意味着,Model类在重复性的传值中有着更佳的适用性。这种重复性不仅指“同一个值”,更可说成“同一种值”。比如,一个页面需要知道员工表中的一系列值(比如,姓名,年龄,职位,薪水,权限等),与其用到了查询一次传过去,不如Model出来一个Workers,然后传值的时候,将Workers具体实例化的一个worker传过去,则worker的所有属性就都有了。
下面就省市县关联来说明一下Model的使用。首先看如下的数据库:
可以看出,id是自增长的,是一条数据的主键,name为地区名字,而pid则为归属地的id。比如,河北省是省级行政区划,因此pid为0,即没有更高的归属了。而石家庄市,唐山市,秦皇岛市等都是河北省下属的市,所以这些市除了自己各自的id之外,pid均为3(河北省的id),自然,每一个市又都有所属的县,而县区的pid则分别是各自的归属市的id 。
因为这些内容具有极为相似的结构(都是id,name,pid),又都有固定的意义(自身编号,自身地名,归属上级地区编号),因此可以设置Mode
4000
l出来。(抽象化出来的Area)
传统的解决方法:简单的三查数据库
方案思路:先查pid=0的,放在一个List中,即为“省”;在SelectionChanged中获得选中的Area,获得其id属性,然后查pid=Area.id,放在List中获得该省的“市”,以此类推,获得该市的“县”。
改良解决方法:既然省市县本就在一张表中,既然这只是一个简单的省市县关联,能不能只查询一次数据库就搞定呢?——欧姆表达式!
方案思路:把数据一次性调入到List中,再用欧姆表达式对List进行操作,分别获得指定pid的元素,放入新的List中显示出来。如此则可省去对数据库的2次访问!
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
首先探讨一下Model层在什么状况下有用,毕竟不言而喻的事实是,Model会增加代码量,所以我们必须在意它能带来的收益:
Model使得可以抽象化实例,然后利用属性在界面甚至架构间传值。因此如果想让UI层和BLL层彻底分离,那么用Model互相调用值是个不错的选择。
Model可以设置多个属性,意味着它带有一定的“数组”功能,可以视为一个二维数组,即外层数组中的每一个元素都是一个新的数组,而内层数组则用来保存数据。这就意味着,Model类在重复性的传值中有着更佳的适用性。这种重复性不仅指“同一个值”,更可说成“同一种值”。比如,一个页面需要知道员工表中的一系列值(比如,姓名,年龄,职位,薪水,权限等),与其用到了查询一次传过去,不如Model出来一个Workers,然后传值的时候,将Workers具体实例化的一个worker传过去,则worker的所有属性就都有了。
下面就省市县关联来说明一下Model的使用。首先看如下的数据库:
可以看出,id是自增长的,是一条数据的主键,name为地区名字,而pid则为归属地的id。比如,河北省是省级行政区划,因此pid为0,即没有更高的归属了。而石家庄市,唐山市,秦皇岛市等都是河北省下属的市,所以这些市除了自己各自的id之外,pid均为3(河北省的id),自然,每一个市又都有所属的县,而县区的pid则分别是各自的归属市的id 。
因为这些内容具有极为相似的结构(都是id,name,pid),又都有固定的意义(自身编号,自身地名,归属上级地区编号),因此可以设置Mode
4000
l出来。(抽象化出来的Area)
传统的解决方法:简单的三查数据库
方案思路:先查pid=0的,放在一个List中,即为“省”;在SelectionChanged中获得选中的Area,获得其id属性,然后查pid=Area.id,放在List中获得该省的“市”,以此类推,获得该市的“县”。
改良解决方法:既然省市县本就在一张表中,既然这只是一个简单的省市县关联,能不能只查询一次数据库就搞定呢?——欧姆表达式!
方案思路:把数据一次性调入到List中,再用欧姆表达式对List进行操作,分别获得指定pid的元素,放入新的List中显示出来。如此则可省去对数据库的2次访问!
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
相关文章推荐
- 利用二叉树特性优化省市镇三级联动性能
- 利用convertView优化ListView和GirdView的性能 (Adapter的使用)
- 使用三层实现省市县三级联动(利用ajax实现无刷新效果)
- Android使用缓存优化ListView..
- (转)Android杂谈--内存泄露(1)--contentView缓存使用与ListView优化
- 优化网站设计(七):避免在CSS中使用表达式
- JavaScript学习——使用JS完成省市二级联动
- MySQL 利用伪列优化多次使用order by
- Android上下滑动,scollView和Listview结合使用,listview的优化.....
- 某宅的Android学习笔记(一)——ListView的使用与优化
- contentView缓存使用与ListView优化
- android基础笔记——使用viewholder模式优化ListView
- Android 省市县 三级联动(android-wheel的使用)
- Android ListView的使用优化以及获取手机所有应用程序
- ios 炒鸡简单使用地址选择器(AddressPickerView),支持省份,省市,省市区三种联动
- ListView使用ViewHolder优化性能(简单易懂)
- JavaWeb中Ajax的使用-基本使用+省市联动例子
- 关于一个ListView使用多个item布局在优化时出现显示错乱的解决方案
- Android使用缓存优化ListView