前言

上周去面试,跪了,这一年没什么长进,还是挺惭愧的。

得到的评语是:想的太多,做的太少。

做了一份面试题,最后一题是数据库的,写个查询。要查出Score有两次及两次以上超过79的Name和他的最高得分,同时显示超过79分的次数。

表内容如下:

直接上Sql答案了。

两种写法:

1. 最简单的方法,好像是万能的,表不断嵌套

select * from (
select Name, max(Score) as maxScore,count (name) as cnt from (
select * from Student where Score>79)
as S1 group by Name)
as S2 where S2.cnt>=2

最内层筛选出分数大于79的,取个别名S1,然后把S1结果用Name分组,然后得到每组的Name,max Score, count(name),然后结果取别名S2,然后用cnt过滤S2的cnt,得到超过2次的结果集合。

2. 用个with 来写CTE,然后用一下having关键字。

with S1
as
(
select * from Student where Score >79
) select name, MAX (score) as maxScore, COUNT (name) as cnt from s1 group by name having COUNT (name)>=2

写法好看了点,效率我也不知道怎么分析。。。有同学愿意帮忙分析一下效率吗。。。

执行上面两个查询,结果如下:

好了,言归正传,WCF入门。

第14集 实现IExtensibleDataObject接口所冒的风险 Risks of implementing IExtensibleDataObject interface

上一集,我们给DataContract 实现了IExtensibleDataObject接口,这个接口的ExtensionData属性可以用来保存客户端传过来的额外的内容,当服务端把实体类序列化成xml回传给客户端时,会一并序列化这个属性里面的内容,就可以避免客户端的数据丢失。但是,这样做有个缺点:

  容易被DoS攻击,因为这些额外的数据是保存在内容中的,如果客户端传过来一个较大的Object,那样就会在服务器上占用大量的内存,服务器会因为内存不够而无法提供正常的服务。

所以,现在的问题就是如何关闭这个特性。有下面几种方法。

1. 最简单的,DataContract类不实现IExtensibleDataObject接口,或者说移除DataContract类的IExtensibleDataObject接口实现,这样做可以是可以,但是假如我们有很多个DataContract都实现了这个接口,那么就要所有的都移除,比较麻烦。

2. 改配置文件的方式。 如下:

    <behaviors>
<serviceBehaviors>
<behavior name="mexBehavior">
<serviceMetadata httpGetEnabled="true" />
<dataContractSerializer ignoreExtensionDataObject ="true"/>
</behavior>
</serviceBehaviors>
</behaviors>

给behaviors节点dataContractSerializer 增加一个ignoreExtensionDataObject ="true".

3.同理,也可以通过编程的方式实现。

[ServiceBehavior(IgnoreExtensionDataObject=true)]
public class EmployeeService : IEmployeeService
{...}

这集就这么点东西,Thank you。

最新文章

  1. Python使用re模块正则式的预编译及pickle方案
  2. Flex 中画图工具(drawTool)失效
  3. RPC和NFS
  4. ASP.NET MVC5学习笔记之Action参数模型绑定基本过程
  5. Gradle使用手册(二):项目结构
  6. bootstrap 笔记01
  7. 黑马程序员_&lt;&lt;String类&gt;&gt;
  8. Swoole笔记(一)
  9. Spring Data JPA在Spring Boot中的应用
  10. Android--MP3播放器MediaPlayer
  11. 简单的新手加法运算(基于Struts2)
  12. csu1804
  13. Redis基础、高级特性与性能调优
  14. 从零开始学 Web 之 HTML5(二)表单,多媒体新增内容,新增获取操作元素,自定义属性
  15. QPushButton按钮
  16. python中str相关函数
  17. 准备面试-DFT
  18. 《DSP using MATLAB》Problem 2.10
  19. Java并发(十三):并发工具类——同步屏障CyclicBarrier
  20. IPtables/NetFilter

热门文章

  1. codeforces C. Triangle
  2. jQuery事件绑定on、off 和one,取代bind, live, delegate
  3. (三)openwrt主Makefile解析
  4. 【OJ】PAT-A解题报告
  5. python之2048
  6. 关于JavaScipt对象的基本知识
  7. 不会UML的程序员不是好构架师?
  8. Android 属性动画(Property Animation) 完全解析 (上)
  9. Android 手势识别类 ( 二 ) GestureDetector 源码浅析
  10. Android优化——UI优化(一)优化布局层次