伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 互联网资讯 » 文章详细 订阅RssFeed

我不信有Java法式员没犯过这10个SQL错误

来源:本站原创 浏览:139次 时间:2021-08-04

阴阳代理人林雅丽是谁,饲料上市公司,好听的狗名字

  #编程#

  Java法式员编程时必要夹杂面向对象思维和一般下令式编程的方法,可否完善的将两者连系起来完全得寄托编程人员的水准:

  妙技(任何人都能容易学会下令式编程)

  模式(有些人用“模式-模式”,举个例子,模式能够应用到任何处所,并且都能够归为某一类模式)

  心境(首先,要写个好的面向对象法式是比下令式法式难的多,你得破费一些功夫)

  但当Java法式员写SQL语句时,统统都纷歧样了。SQL是阐明性语言而非面向对象或是下令式编程语言。在SQL中要写个查询语句是很简洁的。但在Java里类似的语句却不容易,因为法式员不仅要反复思量编程范式,并且也要思量算法的问题。

  下面是Java法式员在写SQL时常犯的10个错误(没有特定的顺序)。

  1、忘掉NULL

  Java法式员写SQL时对NULL的曲解可能是最大的错误。大概是因为(并非独一理由)NULL也称作UNKNOWN。如果被称作 UNKNOWN,这还好懂得些。另一个原因是,当你从内容库拿东西或是绑定变量时,JDBC将SQL NULL 和Java中的null对应了起来。这样导致了NULL = NULL(SQL)和null=null(Java)的曲解。

  对于NULL最大的曲解是当NULL被用作行值表达式完备性约束前提时。另一个曲解显现在对于NULL 在 NOT IN anti-joins的应用中。

  解决方法:

  好好的训练你本身。当你写SQL时要不绝得想到NULL的用法:

  这个NULL完备性约束前提是精确的?

  NULL是否影响到效果?

  2、在Java内存中处理内容

  很少有Java开发者能将SQL懂得的很好。偶尔使用的JOIN,还有古怪的UNION,好吧,然则对于窗口函数呢?还有对鸠合进行分组呢?许多 的Java开发者将SQL内容加载到内存中,将这些内容转换成某些相近的鸠合类型,然后再那些鸠合上面使用界限循环掌握布局(至少在Java8的鸠合升级 以前)执行令人生厌的数学运算。

  然则一些SQL内容库支持先辈的(并且是SQL尺度支持的)OLAP特征,这一特征显示更好并且写起来也更加方便。一个(并不怎么尺度的)例子就 是Oracle超棒的MODEL分句。只让内容库来做处理然后只把效果带到Java内存中吧。因为毕竟所有非常伶俐的家伙已经对这些昂贵的产物进行了优 化。因此现实上,通过将OLAP移到内容库,你将得到一下两项利益:

  便当性。这比在Java中编写精确的SQL可能更加的容易。

  性能显示。内容库应该比你的算法处理起来更加速.并且更加紧张的是,你不必再去通报数百万笔记录了。

  解决方法:

  每次你使用Java实现一个以内容为中心的算法时,问问本身:有没有一种方法能够让内容库取代为我做这种麻烦事。

  3、使用UNION 取代UNION ALL

  UNION ALL(允许重复)

  UNION (去除了重复)

  移除重复行不仅很少必要(有时甚至是错的),并且对于带很多行的大内容鸠合会相当慢,因为两个子select必要排序,并且每个元组也必要和它的子序列元组对照。

  注意即使SQL尺度划定了INTERSECT ALL和EXCEPT ALL,很少内容库会实现这些没用的鸠合操纵符。

  解决方法:

  每次写UNION语句时,思量现实上是否必要UNION ALL语句。

  4、通过JDBC分页手艺给大量的效果进行分页操纵

  大部门的内容库都会支持一些分页下令实现分页结果,譬如LIMIT..OFFSET,TOP..START AT,OFFSET..FETCH语句等。即使没有支持这些语句的内容库,仍有可能对ROWNUM(Oracle)或者是ROW NUMBER()、OVER()过滤(DB2、SQL Server2008等),这些比在内存中实现分页更快速。在处理大量内容中,结果尤其明显。

本文地址:http://www.wbwb.net/bianchengyuyan/215680.html 转载请注明出处!

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net