`
zhaoningbo
  • 浏览: 610157 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java拼SQL语句时为了排版而使用str+str对性能的影响

    博客分类:
  • java
阅读更多

引言:

 

    在拼SQL语句时,都知道尽量用StringBuffer来做拼接。但仍有人为了排版好看,在.appand()内部使用str+str的方式编写。

 

    可以看到下面列的SQL写法1(建议别这写):

        String sql = "select " + resultColumn.trim() + " from "
                + ConstUtil.OWNER + "Table1" + "where CompanyCode "
                + "in(select CompanyCode" + " from " + ConstUtil.OWNER
                + ".secumain " + "where secucode= " + code;

    还有这样的写法2(到底如何):

        String sql = "" 
            + "select * from dbo.Table1 " 
            + "  where CompanyCode in(" 
            + "    select CompanyCode from dbo.secumain "
            + "    where secucode='595804040'"
            + "  )";

    这些语句到底对性能(速度)影响有多大。

 

正文:

 

    写法2这样的片断,中间没有穿插变量,因此JVM可能会存在一个“优化”的行为——即一次尽可能的读入最长的String,然后才存放入“数据区-唯一表”。也就是说,格式化写与连写,生成字节码运行时可能没什么本质区别。对此笔者做了个测试。测试源代码可以在文尾的附件中下载到。

 

    测试在此:>>>(此处略去关于略去多少字的说明)<<<

 

    经过测试

 

    结果:

        10万次连接时,常量,耗时0毫秒;常量连接间穿插变量,耗时547毫秒。

    证明:

        引言中的“写法2”拼接方式是可行的,不影响拼接速度,优化机制是存在的。

 

 

 

 

 

 

 

分享到:
评论
2 楼 zhaoningbo 2011-06-14  
cjxgotofly 写道
用StringBuffer好象效率上要好些吧.同时也是为了排版.美观

恩,威武!
1 楼 cjxgotofly 2011-06-14  
用StringBuffer好象效率上要好些吧.同时也是为了排版.美观

相关推荐

    动态拼接sql语句工具类,拼接where后面语句

    动态拼接sql语句工具类,拼接where后面语句 配合原生jdbc仿动态sql注入 if (ObjectUtil.isNotEmpty(maxLat)&&ObjectUtil.isNotEmpty(minLat)){ sqlParamList.add(new SqlParam("lat",minLat, SqlOpEnum.GE)); ...

    Java 使用注解拼接SQL语句

    使用Java自定义注解来拼接SQL查询语句,方便使用。

    sql语句拼接+游标技术

    sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术

    java定时执行sql语句

    config/sql.txt 中指定需要定时执行的sql语句,使用&lt;&lt;-sql-&gt;&gt;分隔各语句。如: update deviceInfo set ps=1 where status=1 &lt;&lt;-sql-&gt;&gt; delete from deviceInfo set ps=1 where status=0 &lt;&lt;-sql-&gt;&gt; update deviceInfo...

    JAVA-SQL语句优化.doc

    但是,如果在SQL语句的where子句中写的SQL代码不合理,就会造成优化器删去索引而使用全表扫描,一 般就这种SQL语句就是所谓的劣质SQL语句。在编写SQL语句时我们应清楚优化器根据何种原则来使 用索引,这有助于写出高...

    SQL语句拼装工具V2

    写java程序时用来拼装sql语句时使用的小工具,在.net 4.0环境下运行。 跟前一版本比较,增加了前缀和空格位置的自定义,并增加了一个配置文件,保存自定义项 例如将 select a, b, c from abc where a like('3') ...

    java执行SQL语句实现查询的通用方法详解

    主要介绍了java执行SQL语句实现查询的通用方法详解,具有一定借鉴价值,需要的朋友可以参考下。

    Java打印漂亮的SQL语句(被格式化的SQL语句)

    在项目开发的过程中难免需要打印一下自己拼写的SQL语句,尤其是很长的SQL语句,看起来很不舒服,使用该jar包,打印出来的SQL语句已经被格式化,结构很清晰、简洁,更方便我们调试及分析

    Oracle Sql语句转换成Mysql Sql语句

    Oracle Sql语句转换成Mysql Sql语句java 源码,非常简单,只要给定源oracle sql语句地址,和生成目标文件地址运行即可。

    网上书店 java sql java sql 网上书店 java sql

    网上书店 java sql 网上书店 java sql 网上书店 java sql 网上书店 java sql

    通用SQL语句解析类SqlParser(JAVA版)

    项目中已使用的一个比较简单的SQL语句查询字段解析工具类

    java操作mysql数据库,不写sql语句版

    java操作mysql数据库,不写sql语句版

    SQL语句拼接

    SQL语句拼接

    Java拼写SQL语句的类

    利用该类可以快速的拼写sql语句,加快我们使用struts开发速度.能够快速的同时更新多条数据,以及多个条件的查询.使用方法请进我的 baidu 空间查看.地址为:http://hi.baidu.com/yanzuoguang

    JAVA的SQL帮助类,帮助快速使用SQL语句更新,删除,查询数据

    JAVA的SQL帮助类,帮助使用jdbc快速使用SQL语句更新,删除,查询数据,只需要专注于SQL语句的执行,而不需要写数据库的连接与释放

    MSSQL性能监控SQL语句

    MSSQL 性能监控 SQL语句 性能测试

    关于在Java代码中写Sql语句需要注意的问题

    近做程序,时不时需要自己去手动将sql语句直接写入到Java代码中,写入sql语句时,需要注意几个小问题。  先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错。  String str = insert into XXX...

    SQL语句拼装工具

    写java程序时用来拼装sql语句时使用的小工具,在.net 4.0环境下运行。例如将 select a, b, c from abc where a like('3') 转换为: sql.append("select "); sql.append(" a, "); sql.append(" b, "); sql.append...

    开发sql语句拼接自动格式化工具

    SQL语句格式化工具,可语法加亮显示,可将大段SQL拼成程序代码,免去手工拼接之苦。也可将代码还原成SQL,便于在数据库IDE中查询调试。操作简单,省去不少拼接的时间,推荐使用。

Global site tag (gtag.js) - Google Analytics