加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

什么是Perl的qq运算符的Java等价物?

发布时间:2020-12-15 21:43:09 所属栏目:大数据 来源:网络整理
导读:我有一个非常长的字符串,其中包含许多新行(这是一个非常长的SQL语句). 当我用换行符分解它时,SQL更容易阅读.但我不时需要 从代码中复制sql语句以粘贴到sql developer中. 在Perl中,我总是喜欢qq运算符,您可以使用它来代替双引号: 你用它是这样的: $myString
我有一个非常长的字符串,其中包含许多新行(这是一个非常长的SQL语句).

当我用换行符分解它时,SQL更容易阅读.但我不时需要
从代码中复制sql语句以粘贴到sql developer中.

在Perl中,我总是喜欢qq运算符,您可以使用它来代替双引号:

你用它是这样的:

$myString = qq{       
                      SELECT * 
                      FROM table_a a
                      JOIN table_b b ON a.id = b.id ... etc
                };

JAVA中是否有等价物?我发现必须像这样分解字符串中的字符串很尴尬:

String myString = "    SELECT *  " + 
                  "    FROM table_a a " + 
                  "    JOIN table_b b ON a.id = b.id ... etc ";

并且很难从代码中复制SQL语句.我最终不得不删除所有引号和

是否有Java等价物?或者是否有更好的技巧将可读的,可复制的SQL语句放在Java代码中?

解决方法

Java中的多行字符串

Is there a Java equivalent?

在撰写本文时,我不这么认为.但是,有人建议在Java中包含多行字符串.

Or is there a better trick to putting
readable,copy-able SQL statements in
Java code?

通过连接将参数放入SQL查询中并不是一个好主意.有一些类和API可以帮助您形成查询.

“查询包装”

Wrappers可以增强可读性,例如在JDOQL(JDO)中,您可以使用setWhere(),setLimit(),setDistinct()等创建查询.

Query q = pm.newQuery (...);
q.setWhere(...);
q.setRange (...);
q.setOrdering (...);
q.setLimit(...);
q.newParameter(...); // declare a query parameter

q.execute(34.5); // execute the SQL query with a parameter

对于JPA,您可以阅读JPQL.

如果您使用普通JDBC,您可能还会看一下PreparedStatement.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读